问题描述
例如。我有旧型号,像这样:
class Foo:Object {
@objc dynamic var id = ObjectId.generate()
let bars = List<Bar>()
override class func primaryKey() -> String? {
return "id"
}
}
class Bar:Object {
@objc dynamic var id = ObjectId.generate()
override class func primaryKey() -> String? {
return "id"
}
}
和新型号:
class Foo:Object {
@objc dynamic var id = ObjectId.generate()
override class func primaryKey() -> String? {
return "id"
}
}
迁移代码:
let config = Realm.Configuration(
schemaVersion: 1,migrationBlock: {migration,oldSchemaVersion in
if oldSchemaVersion < 1 {
migration.deleteData(forType: "Bar")
}
})
let realm = try! Realm(configuration: config)
运行时,错误显示“表是跨表链接列的目标”。
如果我先跑
let config = Realm.Configuration(
schemaVersion: 1,oldSchemaVersion in
if oldSchemaVersion < 1 {
}
})
然后运行
let config = Realm.Configuration(
schemaVersion: 2,oldSchemaVersion in
if oldSchemaVersion < 1 {
}
if oldSchemaVersion < 2 {
migration.deleteData(forType: "Bar")
}
})
结果奏效。
这里是问题,这是将两次迁移合并为一次迁移的一种方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)