Задать вопрос
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)
  • Вопрос задан
  • 217 просмотров
Подписаться 2 Сложный Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    iOS-разработчик
    10 месяцев
    Далее
  • LearnQA
    Автоматизатор мобильных приложений
    9 недель
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
Решения вопроса 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 к примеру). Чтобы восстановиться из бэкапа, нужно открыть сохраненный файл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы