У меня есть модель управляемого объекта, которая содержит только одну сущность, Person
. В версии модели 1 Person
имел id
и атрибут name
. В версии 2 я добавил атрибут phone
и увеличил число пользователей id
с использованием пользовательской модели сопоставления. Позже я создал версию 3, удалив атрибут phone
. Вот версия 1 и версия 3 являются идентичными случайно, как показано ниже:Перенос основных данных при наличии двух идентичных версий модели
MOM ver | v1 | v2 | v3
---------+-----------+-----------+-----------
Entity | Person | Person | Person
Attrs | - id | - id | - id
| - name | - name | - name
| | - phone |
| ^ | ^
`--------' `-------'
Mapping: * Add phone * Remove phone
* Increment id
С помощью этой модели, магазин создан для версии модели 1 имеет точно такую же схему, как версии 3. Она не может быть определена, если пользователь имеет более старую версию хранилища, которая требует миграции с необходимыми побочными эффектами или имеет последнюю версию.
Итак, вот мой вопрос: как я могу сказать, что для магазина существует достаточно старая версия для миграции, когда у меня есть две идентичные версии модели? Может быть, поместив часть информации о версии в магазин, но как и какую информацию? Или я должен быть очень осторожен, чтобы не создавать такие версии?