android - 如何在 Android 中迁移 Realm

标签 android database migration realm realm-migration

最近我陷入了一个巨大的问题,即如何在 Realm 中迁移内容。我终于解决了这个问题,所以我决定把它贴在stackoverflow上。请注意,Realm 很快就会升级他们的系统,因此答案可能很快就会过时。

该代码适用于 Realm 80.3。

最佳答案

这是我使用的代码:

try {
    realm = Realm.getInstance(context, "database.realm");
    Log.i("Database2", context.getFilesDir().getPath());
} catch (RealmMigrationNeededException ex) {
    Realm.migrateRealmAtPath(context.getFileStreamPath("database.realm").getPath(), new RealmMigration() {
        @Override
        public long execute(Realm realm, long version) {
            Log.i("Database", "Yay!");
            // Migrate stuff...
            Table table = realm.getTable(RealmTestObjectTwo.class);
            table.addColumn(ColumnType.INTEGER, "key");
            table.addColumn(ColumnType.STRING, "value");
            table.setPrimaryKey("key");
            version += 1;
            // End Migrate Stuff...
            return version;
        }
    });
}

让我着迷的是 Realm 希望您提供数据库文件的完整路径。

希望这篇文章能对某人有所帮助!

关于android - 如何在 Android 中迁移 Realm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30857419/

相关文章:

c# - 设计数据库交互时遵循单一职责原则

database - 逐步迁移到新的数据库模式。 ¿建议?

ruby-on-rails - 你如何编写一个 Rails 迁移来删除 :id => false option in the schema. rb?

android - 如何在 Android 版 Google map 中获取当前 Zoomlevel 中的可用地理位置

Android数据库加密

MySql 表转成 JSON 格式

mysql - Rails update_all 在字段列表中返回未知列 *

android - 将 Activity ViewModel 注入(inject) fragment ViewModel

android - Android中如何删除View?

android - 单击箭头图标时如何在抽屉导航的 Android 中使用 onBackPressed?