java - 无法在 android 中更新我的 Realm 数据库
问题描述
我正在尝试更新当前应用程序中的领域数据库。但每次我运行应用程序时,它都会告诉我迁移日期库。
我已经尝试过迁移和 .deleteRealmIfMigrationNeeded() 非接缝工作。
不断收到相同的错误 由于以下错误,需要迁移:
- 添加了“NaturAbout”类。
- 添加了“NaturMap”类。
- 添加了“NaturMenu”类。
- 添加了属性“NaturEverything.map”。
- 添加了属性“NaturEverything.menu”。
- 已添加属性“NaturEverything.about”。
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++;
}
}
解决方案
推荐阅读
- c# - 在 C# 中附加到 Avro 文件
- pattern-matching - 为什么这个函数/构造函数参数变成一个自由隐式变量?
- java - 使用数组列表作为微调器的内容
- google-apps-script - 如何使过滤功能和每个循环不重复数据?
- javascript - 如何使用 d3 在多条形图中添加一个 div,以百分比形式显示两个条形值之间的差异?
- wordpress - 自定义模板不会覆盖原件(Ultimate Member 插件)
- c# - 如何将事件处理程序与 LinkClicked 事件连接起来
- c# - chrome更新83.0.4103.61后的Asp.Net客户端证书认证问题
- html - 下拉项目和汉堡包不会折叠/不起作用,即使它们调整得很好
- java - Apache Camel - 处理来自 TCP 服务器的推送消息