gpt4 book ai didi

ios - 在 RealmSwift 迁移中删除表

转载 作者:行者123 更新时间:2023-11-29 05:31:01 24 4
gpt4 key购买 nike

我正在从架构中删除一个旧的未使用的表。如何从旧版本的应用程序中删除它(DROP Table)?到目前为止我已经尝试过了

  1. configuration.objectTypes 中删除了 GameScore.self
  2. 架构版本冲突
  3. 运行应用
  4. 打开 Realm Studio,GameScore 表格仍然存在,其中包含之前已有的数据

添加

config.migrationBlock = { migration, oldSchemaVersion in
if oldSchemaVersion < 10 {
migration.enumerateObjects(ofType: "GameScore", { (oldObject, newObject) in
if let oldObject = oldObject {
migration.delete(oldObject)
}

})
}

}

将从 GameScore 中删除所有数据。我仍然不明白为什么 Realm 没有完全删除 GameScore 表(我仍然可以使用 Realm Studio 看到它)

最佳答案

要完全删除一个表(在 Realm 术语中称为 CLASS),需要执行以下操作:

 config.migrationBlock = { migration, oldSchemaVersion in
if oldSchemaVersion < 10 {
migration.deleteData(forType: "GameScore")
}

}

我最初的解决方案

config.migrationBlock = { migration, oldSchemaVersion in
if oldSchemaVersion < 10 {
migration.enumerateObjects(ofType: "GameScore", { (oldObject, newObject) in
if let oldObject = oldObject {
migration.delete(oldObject)
}

})
}

}

只会删除该表的内容,它会清除数据,但不会从数据库中删除该表。

关于ios - 在 RealmSwift 迁移中删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57571473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com