Swift Realm резервное копирование и восстановление данных области - PullRequest
0 голосов
/ 14 октября 2019

В настоящее время я создаю две функции, которые выполняют резервное копирование файла области по резервному URL-адресу и восстанавливают его при необходимости.

Это сделано для предотвращения потери данных при использовании приложения с областью.

Например:

Backup URL: .../user1-server-backup.realm
Restore URL: .../user1-server.realm
  • Функция резервного копирования копирует файл области по URL-адресу восстановления в URL-адрес резервной копии.

  • И функция восстановления переносит файл области по URL-адресу резервной копии на URL-адрес восстановления.

Я уже сделал функцию резервного копирования с помощью функции writeCopy.

class func backupLocalStore(storeBackupDirectoryURL: URL) -> Bool {

    let user = CSDefaults.curEmail.replacingOccurrences(of: "@", with: "")
    let sAp = CSDefaults.getPassAndServerFrom(email: user)
    let prefix = sAp.1.components(separatedBy: ".")[0]
    let file = "\(user)-\(prefix)-backup.realm"

    let backupURL = Realm.Configuration().fileURL?.deletingLastPathComponent().appendingPathComponent(file)
    // To be implemented
    // Optionally wrap in a write transaction to
    // prevent other changes happening
    realm.beginWrite()
    do {
        try realm.writeCopy(toFile: backupURL!)
    } catch {
        // Error backing up data
        return false
    }
    realm.cancelWrite()
    return true
}

Теперь я собираюсь создать функцию восстановления, которая переносит файл области по URL-адресу резервной копии на URL-адрес восстановления.

Я не знаю, как создать эту функцию с правильным блоком миграции. чтобы приложение могло корректно работать с файлом резервной копии.

Я использую Swift 5 и CocoaPod RealmSwift 3.17.3.

Заранее спасибо.

...