首页 > 解决方案 > 无法在 android 中更新我的 Realm 数据库

问题描述

我正在尝试更新当前应用程序中的领域数据库。但每次我运行应用程序时,它都会告诉我迁移日期库。

我已经尝试过迁移和 .deleteRealmIfMigrationNeeded() 非接缝工作。

不断收到相同的错误 由于以下错误,需要迁移:

protected Boolean 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();

}

public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {

    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++;
    }
}

标签: javaandroidkotlinrealm

解决方案


推荐阅读