Skip to content

Upgrading from Objectbox v1.5 to v2.x fails with index on unsupported property #712

Open

Description

@mitjakoren

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

Activity

  1. greenrobot-team commented on May 21, 2019

    @greenrobot-team
    Member

    Quoting from Stack Overflow:
    Turns out that ObjectBox does not support removing @Index on a 2.x version for properties unsupported by @Index (float and double were allowed by error in previous releases).

    We are already tracking this internally.

    Until this is fixed I suppose the only workaround (make sure to test this, I have not verified this works) is to delete the entity and use a new one.
    -Uwe

  2. changed the title [-]Upgrading from Objectbox v1.5 to v2.x fails - [/-] [+]Upgrading from Objectbox v1.5 to v2.x fails with index on unsupported property[/+] on May 21, 2019
  3. mitjakoren commented on May 21, 2019

    @mitjakoren
    Author

    @greenrobot-team the proposed workaround means that all objects inside the Entity will be lost which is not an option in our use case. Thank you for looking into the matter.

  4. added this to the 3.0 milestone on Aug 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions