是否可以检测到用户正在安装具有旧数据库架构版本的应用程序版本? (基本上将应用程序版本降级)
想知道是否有可能检测并删除当前数据库文件,以便该应用程序仍可以从中恢复,而不仅仅是崩溃。
[这是一个奇怪的情况,但是它正在发生(某些Beta测试人员等)。
是,您可以访问migrationBlock
的Realm.Configuration
中的旧架构版本,因此只需检查设备上存储的oldSchemaVersion
实际上是否高于当前应用程序版本的版本即可;如果是,请删除使用Realm.deleteFiles(for:)
的所有Realm文件。
let currentSchemaVersion = 1
let config = Realm.Configuration(
schemaVersion: currentSchemaVersion,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion > currentSchemaVersion) {
Realm.deleteFiles(for: Realm.Configuration.defaultConfiguration)
}
})