Как перенести данные и схему из предварительно заполненной базы данных objectBox?

Я использую ObjectBox в качестве менеджера баз данных в приложении Flutter / Dart.

Я использую предварительно заполненную базу данных (.mdb), которую копирую в каталог приложения при установке.

  • Как выполнить миграцию базы данных?
  • Какой тип архитектуры я должен настроить для выполнения миграции как данных, присутствующих в базе данных, так и схемы (как, например, мы могли бы сделать с Realm)
  • Можно ли получить что-то подобное:
           if (oldVersion == 0) {
       // Migrate DATA or/and Schema from v0 to v1
       oldVersion++;
     }

     if (oldVersion == 1) {
       // Migrate DATA or/and Schema from v1 to v2
       oldVersion++;
     }

1 ответ

ObjectBox выполняет миграции иначе. Во многих случаях он может делать это автоматически без какой-либо дополнительной информации (например, добавления / удаления свойств и типов). Для переименования вы должны предоставить дополнительную информацию. Весь процесс документируется здесь , включая некоторый фон на UIDs (если вы заинтересованы, в противном случае перейти к «как» раздел).

Судя по вашему вопросу, я не понимаю, что вы искали. Если вы хотите, чтобы ваша собственная логика запускалась, например, при обновлении приложения, тогда это полностью в ваших руках. Например, у вас может быть свой собственный «метатип», несущий версию вашего приложения, и на его основе делать любые обновления, зависящие от приложения.

PS: Я не уверен, как тот факт, что вы имеете дело с «предварительно заполненной базой данных», должен на это повлиять; насколько я понимаю, этого не должно быть.

Другие вопросы по тегам