ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode

Как сделать бэкап Realm БД в файл на Swift?

Как сохранить БД Realm в файл, в идеале с кастомным расширением?
Как заменить текущую БД таким бэкапом?

Инициализирую БД так:

let fileURL = FileManager.default
            .containerURL(forSecurityApplicationGroupIdentifier: self.identificator)!
            .appendingPathComponent("default.realm")
        let config = Realm.Configuration(fileURL: fileURL, schemaVersion: 2, migrationBlock: { (migration, oldSchemaVersion) in })
        let realm = try! Realm(configuration: config)
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
ivanvorobei
@ivanvorobei Автор вопроса
iOS разработчик, канал https://t.me/sparrowcode
Если URL для Realm выглядит так:

FileManager.default
            .containerURL(forSecurityApplicationGroupIdentifier: self.identificator)!
            .appendingPathComponent("default.realm")


То получить объект Data не сложно:

let backup = try Data(contentsOf: realmURL)

Дальше Data можно записать куда-то, добавить ему расширение, выгрузить... тут по вкусу.

Чтобы заменить базу данных Ream бэкапом, используйте:

try backup.write(to: realmURL)

Можно сохранить бэкап в файл, добавить расширение и предлагать пользователю сохранить файл (в iCloud Drive к примеру). Чтобы восстановиться из бэкапа, нужно открыть сохраненный файл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы