问题标签 [realm-migration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 使用 Realm + Okhttp 时无法获取崩溃的确切原因
我正在使用 Realm,我的应用程序崩溃并出现以下痕迹,我不知道如何解决这个问题。这是我在控制台上看到的唯一堆栈跟踪。没有其他的 :
这是第 74 行:Realm realm = Realm.getInstance(context);
我不确定这次崩溃的确切原因是什么。非常感谢这方面的任何帮助。
android - Realm 在第一次调用时崩溃。如果用于打开同一个文件,配置不能不同
我收到此错误:
这里:
在这一行:
我的配置是这样完成的:
我的问题是,如何关闭/关闭打开文件的配置,以便使用第二个配置(带有 deleteRealmIfMigrationNeeded 的配置?
android - 重用领域数据库的快照
我有一个每秒多次填充数据的领域数据库。我将数据库视为绘制的 MPChartLib 数据。我的目标是在特定时间点拍摄数据库的照片,并在稍后重用该信息。
我正在尝试几种方法,但都陷入了僵局。我的第一种方法是拥有第二个 Realm 数据库,我将在单击按钮时将第一个数据库中的信息填充到该数据库中。我的第二种方法是将数据库导出到一个文件,然后再重新打开它。
在我的第一种方法中,我在 onCreateView 中构建了两个数据库,如下所示。我将 mRealm 用作动态变化的 Realm,将 mSRealm 用作仅在按钮单击时发生变化的静态。
以及每个配置的 buildDatabase 代码
当 mRealm 数据库完成它的事务时,我测试以查看 recordData 标志是否已通过按钮推送设置为 true。如果是这样,那么我将数据库导出为文件和/或尝试将静态数据库快照更新为动态数据库的当前状态。
要将数据导出到我正在使用的文件中:
要复制到我正在使用的静态库:
此代码在创建 mSRealm 的新实例时终止,因为“开始填充等”永远不会显示在日志中。不知道我在那里做错了什么。
我想去一个新的片段并使用静态数据库。在新片段的 onCreateView 中,我尝试创建一个指向静态领域的配置:
但是,我无法对此进行测试,因为我的代码在我尝试的副本处停止。对于文件方法,我尝试通过已将其重写为片段并将其包含在我的项目中的 MigrationExampleActivity 进行工作,以测试如何通过版本更新执行迁移。这将变得更加重要,因为存档快照以供将来长期参考非常重要。
我认为这是从我在其他问题上阅读的文件中“重新加载”数据库的方法。我的代码在下面获取新实例时再次崩溃。
我试图在我的项目中模仿 realmjavamaster 的结构,但也许我在设置原始目录时遇到了问题。我不太清楚如何利用“常驻”领域以及如何参考重新打开它们、获得正确的路径等。
可能是我的问题在于引用,或者我在获取新实例时不知道足够的细节。也许我错过了一些基本的东西。
非常感谢任何帮助。
android - 我怎样才能确定领域是否存在
我想更改已经存在的领域数据库的领域配置。在我的应用程序中,我一直在使用:
在 Playstore 上发布应用程序后,我发现我可以使用自定义迁移来更改已经存在的数据库,如下所示:
但我无法更改已经存在的数据库的领域配置。如果我尝试使用新配置打开现有数据库,我会得到:
所以我现在要做的是-在具有迁移功能的设备上创建一个新数据库-检查是否有旧数据库-设备上是否有旧数据库将内容复制到新数据库并删除旧数据库
android - NullPointerException 无效 io.realm.RealmChangeListener.onChange()
我正在尝试在我的项目中实现 Realm 数据库,我有一个带有在数据库中添加项目的方法的类,我使用该类来存储这些方法并在我的片段中调用它们,但是当我这样做时,我得到一个错误:
我在这里做错了什么?
分段:
全球的:
ios - 领域:获取 -[__NSArrayM UTF8String]:无法识别的选择器发送到实例
我在应用程序升级场景中遇到崩溃。它给出以下错误和警告。但是这个问题只有在我安装了 AppStore 构建并且在此之上我安装了我的新 testflight 构建时才会发生。如果我在 AppStore 构建上安装开发人员构建,则它可以正常工作。
错误:
[__NSArrayM UTF8String]:发送到实例的无法识别的选择器
警告:一个 RLMRealm 实例在写事务期间被释放,所有挂起的更改都已回滚。确保在写事务期间保留对 RLMRealm 的引用。
当您点击应用程序图标时,它会立即崩溃,因此,我没有任何堆栈跟踪。
领域版本:0.96.3 & Xcode 版本:7.3
下面是我的迁移代码。
以上所有内容newObjects
仅在此版本中添加。
更新 1:我可以看到deleteRealmIfMigrationNeeded
android。iOS中是否有任何等价物?我只发现deleteAllObjects
。如果是这样,那么我可以简单地删除我的旧领域数据并保存新的。
谢谢。
ios - 迁移期间可选的 Int 属性包含 nil 而不是零
我正在尝试从以下模型执行 Realm.IO 迁移:
到以下:
如您所见,唯一的变化在于 contactId 的类型: optionalInt
应转换为 optional String
。我已经这样实现了:
但是,我发现在迁移后,我没有contactId(即nil
值)的实体现在的contactId 等于“0”字符串。看来 oldObject!["contactId"] 返回 0 而不是 nil。
我没有找到关于如何执行这个简单任务的任何信息或示例,所以我不确定我是否正确检索/转换了值(RealmOptional<Int>
也尝试转换为),所以我决定在提交问题之前在这里询问它github。这是一个错误还是预期的行为?如果是预期行为,如何正确获取价值?
PS:我的项目是开源的,因为我是 iOS 新手,并且为了自学而开发它,所以我将它推送到一个可以轻松重现问题的仓库(请注意它在migration_issue分支中)。我还使用现有文件进行了单元测试.realm
,该文件在测试期间迁移到新模式。希望这会有所帮助。
PPS:我尝试了 0.102.1 和 0.103.1 版本的库。
PPPS:有人提到 Realm Browser 在我的示例 .realm 文件中不显示任何带有 nil 值的 contactId。我认为这只是 Realm Browser 问题,所以我在单独的分支中进行了另一个单元测试,以证明旧数据库具有nil 值。
swift - 领域迁移:将对象迁移到列表中
所以,我一直在尝试迁移我的 Realm 架构,但我似乎无法执行以下操作。
在 中oldSchema
,我有以下内容:
在 中newSchema
,我试图将工作日移动到工作日列表中。
在执行领域迁移时,我如何将weekday
对象oldSchema
从weekdays
.newSchema
谢谢。
java - 领域:更改字段名称以进行迁移
我想在 Realm DB 迁移过程中更改字段名称。似乎不支持更改字段名称,只有复制和删除是唯一的方法。
这个对吗?它消耗大量时间。
下面的代码是我尝试以复制和删除方式更改value
字段summary
。
ios - 执行从一个列表到另一个列表的领域迁移
在我的模型中,我想迁移List<Item>
该 Item 包含自定义类产品的位置,例如:
简单地说List<Product>
我尝试了不同的东西,但似乎没有任何效果。例如这样的:
这会导致错误提示该对象已被持久化。
如果我在迁移块中创建一个新产品,我的领域中将有重复的对象。
我还尝试直接分配给列表,例如:newObject!["products"]
不附加但也无法使其正常工作。
有人能指出我正确的方向吗?