如何避免RealmSwift中的迁移
我只是在用Realm测试一些配置,因此我从Realm类中添加和删除了变量和列表。因为我只是在测试,所以我不想经历迁移过程-我也没有任何影响连续性的数据如何避免RealmSwift中的迁移,swift,migration,realm,Swift,Migration,Realm,我只是在用Realm测试一些配置,因此我从Realm类中添加和删除了变量和列表。因为我只是在测试,所以我不想经历迁移过程-我也没有任何影响连续性的数据 有没有办法绕过域自动请求的迁移?有两种方法可以跳过迁移错误,而不考虑架构更改 使用deleteRealMifMigrationRequired属性。如果为true,则如果需要迁移,请使用提供的架构重新创建领域文件 let config = Realm.Configuration(deleteRealmIfMigrationNeeded: true
有没有办法绕过域自动请求的迁移?有两种方法可以跳过迁移错误,而不考虑架构更改
deleteRealMifMigrationRequired
属性。如果为true
,则如果需要迁移,请使用提供的架构重新创建领域文件
let config = Realm.Configuration(deleteRealmIfMigrationNeeded: true)
Realm.Configuration.defaultConfiguration = config
let realm = try! Realm()
...
let config = Realm.Configuration(schemaVersion: try! schemaVersionAtURL(Realm.Configuration.defaultConfiguration.fileURL!) + 1)
Realm.Configuration.defaultConfiguration = config
let realm = try! Realm()
...
在Swift 3中 通过将此代码放在AppDelegate类中的“didFinishLaunchingWithOptions”方法中,可以轻松避免域中的迁移
var config = Realm.Configuration()
config.deleteRealmIfMigrationNeeded = true
Realm.Configuration.defaultConfiguration = config
如果新设置需要迁移,这将删除领域数据库。Swift 4
var config = Realm.Configuration()
config.deleteRealmIfMigrationNeeded = true
Realm.Configuration.defaultConfiguration = config
好东西。我让realm=试试!viewDidLoad之前定义的Realm()。在应用程序崩溃之前,我可以将建议的代码放在何处使其工作,因为它会命中领域定义?我们建议将代码放在AppDelegate中的
didfishLaunchingwithoptions
。如果你放让realm=试试!Realm()。所以它应该是lazy var realm=try!Realm()。太好了,谢谢。@MacOS上的kishikawakatsumi我改为lazy var并重新安装了应用程序,然后修改了模型,添加了几个字段并运行了应用程序。访问realm.objects()中的领域时,它在viewDidLoad中崩溃。我在AppDelegate didFinishLaunchingWithOptions中有自动迁移功能。还有什么不对?或者此解决方案仅适用于iOS?有没有关于领域和迁移的完整项目的好例子?如何从migrationBlock内部删除领域?因此,您可以选择删除数据的内容和时间。谢谢对我来说工作很有魅力!谢谢但是你会丢失数据吗?