问题标签 [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 - Android Realm Migration 版本号基于什么?
我正在进行我的第一次 Realm 迁移并开始考虑版本号。这个版本号基于什么?
因为如果它基于您手机上的内容,如果新人安装该应用程序并获得迁移,我该如何处理?因为它还会更新由于全新安装而已设置的字段。
ios - 检测 Realm.io db 是否需要迁移 - 如果是,则销毁它
我正在使用 Realm 在不长的时间内进行缓存,并且无需在数据模型发生更改时跟上模式版本或迁移。
因此,我的应用程序如何通过删除默认领域并从头开始巧妙地处理差异,而不是在数据模型发生更改时崩溃?
提前致谢!
android - Android Realm 迁移:添加新的 Realm 列表列
我正在使用 Realm v0.80.1,我正在尝试为我添加的新属性编写迁移代码。该属性是一个 RealmList。我不确定如何正确添加新列或设置 aa 值。
我所拥有的:customRealmTable.addColumn(, "list");
正确添加列后,我将如何为列表属性设置初始值?我想做类似的事情:
customRealmTable.setRealmList(newColumnIndex, rowIndex, new RealmList<>());
android - 如何在 Android 中迁移 Realm
所以最近我遇到了一个如何在 Realm 中迁移东西的大问题。我终于解决了这个问题,所以我决定将它发布在stackoverflow上。请注意,Realm 很快就会升级他们的系统,所以答案可能很快就会过时。
该代码适用于 Realm 80.3。
java - Realm 0.81.1 上的迁移
添加对象后出现不同的异常。
- 需要迁移
- 在方案中找不到类
- 磁盘上的版本比请求的版本新
怎么了?
1 - MainActivity.java
2 - RealmTestObjectOne.java
3 -构建和运行
4 -添加 RealmTestObjectTwo.java与 RealmTestObjectOne.java 相同,但 id 不同
5 -修改 RealmConfiguration
5 -添加迁移.java
解决了
感谢@geisshirt 的回答。
ios - 领域主键迁移-目标C
下面是旧的 RLMObject,primaryKey 是 AttributeId。我想将此键更改为@“Id”下一次构建。
用户项目对象.m
用户项目对象.h
然后我给 AppDelegate 写了一些代码;
这段代码给我一个错误;
我该如何解决这个问题?非常感谢。
android - 如果用户跳过更新,如何处理领域迁移
因此,我们有一个用户拥有 1.0 版应用程序的场景。2.0版出来了,但是用户没有更新。当版本 3.0 出来时,用户决定更新。
因为用户还没有更新应用程序,领域文件也没有更新,所以在从 1.0 版迁移到 3.0 版时,version
参数 ofMigration.execute
的值将是 1 而不是 2。
当用户直接安装 2.0 版本的应用程序然后迁移到 3.0 版本时也会出现问题。和前一种情况一样,version
参数会出错。
有没有办法妥善处理这些情况?
ios - 需要迁移领域时清除数据库
Android有一种方法可以实现这一点,但我仍然对接近iOS感到困惑。我不想每次有新更新时都进行迁移,所以如果是这样,我更喜欢 clear db 重新开始。
我发现这个问题与此相关
我只能使用此代码进行迁移吗?
objective-c - 为多个 .realm 文件执行领域迁移
我有多个领域文件(每个用户一个登录到我的应用程序),我需要为文件系统中的每个领域文件运行迁移
如何为每个文件系统数据库执行领域迁移,而不仅仅是默认领域文件?
xcode - Realm.io RealmSwift 其他领域迁移
我需要为我的Other Realm
.
AppDelegate
我通过这种方法( )获得了我的领域路径。如果用户之前登录,我将检索用户的领域,否则我将只使用Default Realm
.
我通过这种方法(称为 inside AppDelegate:didFinishLaunchingWithOptions
)进行了迁移。
对于我的 RLMCustomer 对象,我修改
var firstName: String = ""
为var firstName: RLMStringTimeStamp!
即使我将其更改 schemaVersion
为非常高的值,migrationBlock
也没有接到电话。谁能帮我发现我错过了什么或做错了什么?
运行应用程序后,它崩溃了bad excess, code = 257
编辑1:
错误:“试试!” 表达式意外引发错误:错误域 = io.realm 代码 = 0“提供的架构版本 0 小于上次设置的版本 1。” UserInfo=0x170660c00 {NSLocalizedDescription=提供的架构版本 0 小于上次设置的版本 1.}:文件 /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-700.0.59/src/swift/stdlib/public/核心/ErrorType.swift,第 50 行
它似乎正在读取错误的配置文件,我怀疑错误是由于Realm.Configuration.defaultConfiguration = config
我如何设置配置Other Realm
?
编辑2:
我让我
default realm
的 to 包含我的名称和路径other realm
编辑4:
看来配置文件是正确的。如果没有来自旧领域的客户记录,我可以毫无问题地运行该应用程序。只有在旧领域有客户记录时才会崩溃。我可以从oldObject["firstName"]
print(Realm.Configuration.defaultConfiguration)
Realm.Configuration { 路径 = /var/mobile/Containers/Data/Application/8670C084-75E7-4955-89FB-137620C9B00D/Documents/perwyl.realm; inMemoryIdentifier = (null); 加密密钥 = (null); 只读 = 0; 架构版本 = 2; 迁移块 = < NSMallocBlock : 0x170451220>; 动态 = 0; customSchema = (null); } oldSchemaVersion 0
非常感谢!!!
编辑 5:我的问题的解决方案
StringTimestamp object
如果我直接分配给 newObject,我不确定为什么它会崩溃。
感谢大家的指导!:)