Объяснение Миграторов (FluentMigrator)?
Может ли кто-нибудь объяснить концепцию Миграторов (в частности, беглого мигратора)?
Вот (возможно, запутанные) факты, которые я почерпнул по этому вопросу:
Это способ изначально создавать, а затем поддерживать обновления для базы данных путем управления версиями.
Первая миграция (или первоначальная версия базы данных) будет содержать все необходимые таблицы, отношения и свойства (выполняется свободно или с использованием фрагмента SQL в сценарии).
Если вы хотите отправить изменение в базу данных, вы должны создать новый метод миграции (вверх и вниз), например добавить новую таблицу или изменить поле.
Для развертывания одной из этих миграций вы должны использовать командную строку, указав dll, содержащую миграцию, строку подключения и требуемую версию.
Если бы у вас был довольно сложный набор моделей данных, не было бы довольно сложно и трудоемко создать определение миграции для всего этого?
Я знаю, что с помощью nHibernate / fluent вы можете легко создавать таблицы для базы данных, не определяя ничего, кроме моделей и файлов карт. Есть ли способ сделать эту конфигурацию совместимой с Migrator / Versioning?
Когда nhibernate / fluent отвечает за создание базы данных, мне не обязательно определять все аспекты таблиц. Это делается либо по соглашению, либо через файлы сопоставления. С мигрантами мне нужно было бы определить этот уровень детализации?