2016-07-20 2 views
0

У вас возникли проблемы с некоторыми проектными решениями, связанными с тем, что schemaVersion является общедоступной, а не для каждой модели. Мои цели:Схемы, миграции и схема в случае разделения моделей между модулями?

  • Модули могут разоблачить «модели», которые являются только объекты, которые имеют:
    • имя, метка, другие полезные мета-данные
    • «схемы», массив объектов, как: {version: 1, schema: {...}, migration: (optional)}
  • модуль оркестратором затем обеспечивает клей, чтобы загрузить все эти модели модулей, создать объект Realm из них и запустить в ожидании миграции (в очень похожим образом, к примеру, в вашей документации)

Проблема: Как создать схему schemaVersion в масштабе всего домена, которая правильно увеличивается, когда у любого из модулей есть новые версии? Имейте в виду, что вы можете перестать использовать какой-либо данный модуль модели, поэтому что-то вроде добавления всей версии не получится.

+0

Некоторые идеи, с которыми я играл: Отслеживание всех версий модели в «системном» мире, поэтому оркестр знает, какие субмиграции будут запущены. Это «системное» пространство может даже содержать все старые схемы (так что модулям не нужно их поддерживать, только старые функции миграции. –

+0

Используете ли вы Realm с React Native или в какой-то другой среде? – bdash

+0

@ bdash Да, realm with response-native. –

ответ

0

Вы можете использовать несколько Realms, по одному для каждой модели или набора моделей, для которых требуется их схема schemaVersion. Если вы это сделаете, вы можете указать другой блок миграции и schemaVersion для каждой модели. Вам нужно будет использовать разные имена Realm для каждой области, но использование имени модели кажется интуитивным.

+0

Я бы предположил, что у вас не могут быть какие-либо вложенные отношения. Могло обойти это, в большинстве случаев, с помощью только списков идентификаторов (хотя вы не можете просто составить список строк afaik, так что вы 'd сделать модель какого-то типа. –

+0

Правильно - я бы рекомендовал помещать объекты, которые ссылаются на каждого в том же Realm, чтобы все они были перенесены вместе. Идентификаторы также работали бы, но для получения каждого объекта требуется дополнительная выборка. – Ari

Смежные вопросы