Переход на более раннюю версию RealmSwift - PullRequest
0 голосов
/ 26 мая 2020

Можно ли определить, что пользователь устанавливает версию приложения со старой версией схемы базы данных? (в основном понижение версии приложения)

Хотите знать, можно ли обнаружить и удалить текущий файл базы данных, чтобы приложение могло восстанавливаться из него, а не просто зависало.

Это странный сценарий, но это происходит (некоторые бета-тестеры и тому подобное).

1 Ответ

1 голос
/ 26 мая 2020

Да, у вас есть доступ к старой версии схемы в migrationBlock из Realm.Configuration, поэтому просто проверьте, действительно ли oldSchemaVersion, хранящийся на устройстве, выше, чем тот, который есть в вашей текущей версии приложения, и если да, удалите все файлы Realm, используя Realm.deleteFiles(for:).

let currentSchemaVersion = 1
let config = Realm.Configuration(
    schemaVersion: currentSchemaVersion,

    migrationBlock: { migration, oldSchemaVersion in
        if (oldSchemaVersion > currentSchemaVersion) {
            Realm.deleteFiles(for: Realm.Configuration.defaultConfiguration)
        }
    }
)

// Then set the config and create your `Realm` instance
Realm.Configuration.defaultConfiguration = config
let realm = try! Realm()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...