Не удается обновить базу данных моей области в Android

#java #android #kotlin #realm

#java #Android #kotlin #область

Вопрос:

Я пытаюсь обновить базу данных Realm в текущем приложении. но каждый раз, когда я запускаю приложение, оно продолжает указывать мне перенести базу данных дат.

я пробовал как миграцию, так и .deleteRealmIfMigrationNeeded() не работает.

продолжайте получать ту же ошибку, требуется миграция из-за следующих ошибок:

  • Добавлен класс ‘NaturAbout’.
    • Добавлен класс ‘NaturMap’.
    • Добавлен класс ‘NaturMenu’.
    • Добавлено свойство ‘NaturEverything.map’.
    • Добавлено свойство ‘NaturEverything.menu’.
    • Добавлено свойство ‘NaturEverything.about’.

защищенный логический doInBackground(Void … params) {

     RealmConfiguration realmConfiguration = new RealmConfiguration.Builder()
            .schemaVersion(1)
            .migration(new MyMigration())
            .deleteRealmIfMigrationNeeded()
            .build();

    Realm realm;
    realm = Realm.getInstance(realmConfiguration);
    realm.beginTransaction();
    realm.deleteAll();
    realm.commitTransaction();
  

}

миграция общедоступной пустоты (область DynamicRealm, длинная старая версия, длинная новая версия) {

     RealmSchema schema = realm.getSchema();

    if (oldVersion == 0) {
        schema.get("NaturEverything")
                .addField("map", NaturMap.class)
                .addField("menu", NaturMenu.class)
                .addField("about", NaturAbout.class);
        schema.create("NaturAbout")
                .addField("id", int.class)
                .addField("header", NaturLocalizedString.class)
                .addField("excerpt", NaturLocalizedString.class)
                .addField("description", NaturLocalizedString.class)
                .addField("image", NaturLocalizedString.class);
        schema.create("NaturMap")
                .addField("id", int.class)
                .addField("zoom", int.class)
                .addField("lat", int.class)
                .addField("lng", int.class);
        schema.create("NaturMenu")
                .addField("id", int.class)
                .addField("about", NaturLocalizedString.class)
                .addField("map", NaturLocalizedString.class)
                .addField("routes", NaturLocalizedString.class);
        oldVersion  ;
    }
}
  

Комментарии:

1. Единственным решением, которое я нашел, было удалить файл .realm, а затем создать из него новый. и я использовал флаг, чтобы указать, что это только те, которые были вызваны.