问题标签 [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.

0 投票
2 回答
4319 浏览

android - Android Realm Migration 版本号基于什么?

我正在进行我的第一次 Realm 迁移并开始考虑版本号。这个版本号基于什么?

因为如果它基于您手机上的内容,如果新人安装该应用程序并获得迁移,我该如何处理?因为它还会更新由于全新安装而已设置的字段。

0 投票
3 回答
2304 浏览

ios - 检测 Realm.io db 是否需要迁移 - 如果是,则销毁它

我正在使用 Realm 在不长的时间内进行缓存,并且无需在数据模型发生更改时跟上模式版本或迁移。

因此,我的应用程序如何通过删除默认领域并从头开始巧妙地处理差异,而不是在数据模型发生更改时崩溃?

提前致谢!

0 投票
2 回答
11276 浏览

android - Android Realm 迁移:添加新的 Realm 列表列

我正在使用 Realm v0.80.1,我正在尝试为我添加的新属性编写迁移代码。该属性是一个 RealmList。我不确定如何正确添加新列或设置 aa 值。

我所拥有的:customRealmTable.addColumn(, "list");

正确添加列后,我将如何为列表属性设置初始值?我想做类似的事情:

customRealmTable.setRealmList(newColumnIndex, rowIndex, new RealmList<>());

0 投票
2 回答
3766 浏览

android - 如何在 Android 中迁移 Realm

所以最近我遇到了一个如何在 Realm 中迁移东西的大问题。我终于解决了这个问题,所以我决定将它发布在stackoverflow上。请注意,Realm 很快就会升级他们的系统,所以答案可能很快就会过时。

该代码适用于 Realm 80.3。

0 投票
0 回答
563 浏览

java - Realm 0.81.1 上的迁移

添加对象后出现不同的异常。

  • 需要迁移
  • 在方案中找不到类
  • 磁盘上的版本比请求的版本新

怎么了?

1 - MainActivity.java

2 - RealmTestObjectOne.java

3 -构建和运行

4 -添加 RealmTestObjectTwo.java与 RealmTestObjectOne.java 相同,但 id 不同

5 -修改 RealmConfiguration

5 -添加迁移.java

解决了

感谢@geisshirt 的回答。

0 投票
1 回答
883 浏览

ios - 领域主键迁移-目标C

下面是旧的 RLMObject,primaryKey 是 AttributeId。我想将此键更改为@“Id”下一次构建。

用户项目对象.m

用户项目对象.h

然后我给 AppDelegate 写了一些代码;

这段代码给我一个错误;

我该如何解决这个问题?非常感谢。

0 投票
3 回答
1440 浏览

android - 如果用户跳过更新,如何处理领域迁移

因此,我们有一个用户拥有 1.0 版应用程序的场景。2.0版出来了,但是用户没有更新。当版本 3.0 出来时,用户决定更新。

因为用户还没有更新应用程序,领域文件也没有更新,所以在从 1.0 版迁移到 3.0 版时,version参数 ofMigration.execute的值将是 1 而不是 2。

当用户直接安装 2.0 版本的应用程序然后迁移到 3.0 版本时也会出现问题。和前一种情况一样,version参数会出错。

有没有办法妥善处理这些情况?

0 投票
1 回答
1000 浏览

ios - 需要迁移领域时清除数据库

Android有一种方法可以实现这一点,但我仍然对接近iOS感到困惑。我不想每次有新更新时都进行迁移,所以如果是这样,我更喜欢 clear db 重新开始。

我发现这个问题与此相关

我只能使用此代码进行迁移吗?

0 投票
1 回答
628 浏览

objective-c - 为多个 .realm 文件执行领域迁移

我有多个领域文件(每个用户一个登录到我的应用程序),我需要为文件系统中的每个领域文件运行迁移

如何为每个文件系统数据库执行领域迁移,而不仅仅是默认领域文件?

0 投票
3 回答
2104 浏览

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,我不确定为什么它会崩溃。

感谢大家的指导!:)