objectbox / objectbox/objectbox-java
Upgrading from Objectbox v1.5 to v2.x fails with index on unsupported property
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 4.6k
- Forks
- 311
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Issue Basics
- ObjectBox version: 1.5 upgrading to 2.x (2.3.4 at time of writing)
- Reproducibility: always
Reproducing the bug
Create project with objectbox v1.5, define Object with Entity.
@Entity
public class Foo {
@Index private Double Lat;
@Index private Double Lng;
}
Compile and run project, in order to create the objectbox DB and save some instances.
Update the objectbox version in the project to 2.3.4, then update the entity by removing the @Index annotations
Update the entity to
@Entity
public class Foo {
private Double Lat;
private Double Lng;
}
Recompile and run project again. You will get the following Exception:
io.objectbox.exception.DbException: Indexing of float and double is currently unavailable. Please remove the index on Property Lat (5, Double)
Description
This bug has been already mentioned and discussed in the StackOverflow Thread https://stackoverflow.com/questions/54149954/double-field-index-problem-when-upgrading-objectbox-library
Upgrading the objectbox instance from 1.5 to 2.x when having an @Index set on a Double field is impossible for existing apps.
A desired way of handling this would be to remove the @Index from the existing legacy data structure internally and let the app keep the data as before, making a migration to the new objectbox version possible and seamless.
Please fix this issue as an upgrade of the module is impossible.
Code
ObjectBox v1.5
@Entity
public class Foo {
@Index private Double Lat;
@Index private Double Lng;
}
ObjectBox v2.3.4
@Entity
public class Foo {
private Double Lat;
private Double Lng;
}
triggers runtime DbException: "io.objectbox.exception.DbException: Indexing of float and double is currently unavailable. Please remove the index on Property Lat (5, Double)"
Logs & stackstraces
io.objectbox.exception.DbException: Indexing of float and double is currently unavailable. Please remove the index on Property Lat (5, Double)
Misc
Is there anything special about your app?
No
May transactions or multi-threading play a role?
No
Did you find any workarounds to prevent the issue?
No workarounds found to date
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la reproducción en Java descrita en el issue: crea una base de datos v1.5 con campos Double indexados y, después de eliminar las anotaciones, actualízala a ObjectBox 2.3.4. Sigue el tratamiento de la migración para el índice heredado que provoca la DbException; se considera terminado cuando la base de datos existente se abre correctamente sin el índice obsoleto y conserva sus datos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- databases
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 35/100