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