Вместо автоматического обновления базы данных сгенерируйте sql-скрипт с fluent n-hibernate для производственной среды

StackOverflow https://stackoverflow.com//questions/22078299

Вопрос

Я просмотрел различную документацию, хотя и не нашел ничего, что касалось бы этого.Я рассматриваю возможность использования fluentmigrator для будущих проектов, хотя для промежуточных / производственных практик необходимо выполнять обновления схемы через администратора базы данных.Мне разрешено делать то, что я хочу, для других сред, таких как тестирование, разработка и локальная.

Назначение инструмента полностью разрушается, если мне все равно приходится писать сценарии для внесения изменений.Однако мне пришло в голову, а что, если я этого не сделаю?Итак, мой вопрос заключается в следующем:Возможно ли, чтобы fluent migrate выдавал sql-скрипт в файл вместо фактического запуска транзакции?

В своем эксперименте я создал консольное приложение, которое использует ту же сборку DAL, что и основной проект, и использует логику переноса, так что всякий раз, когда я запускаю консольное приложение, оно обновляет базу данных с нуля или из ближайшей точки, в зависимости от моего выбора.Мы используем TeamCity, поэтому подумали, что было бы здорово, если бы он запустил приложение и поместил скрипт (как артефакт) в папку в качестве шага в процессе сборки для нашего администратора базы данных в средах, где обновление схемы самостоятельно было бы воспринято неодобрительно.

Это было полезно?

Решение

Тот Самый Бегун командной строки FluentMigrator будет генерировать SQL-скрипты, без применения изменений к базе данных, если вы используете:

  • --preview=true
  • --output=true
  • --outputFilename=output1.sql

И, если вы установите FluentMigrator.Набор инструментов в дополнение к Упаковка FluentMigrator, у вас будет доступ к исполнителю командной строки из выходного каталога сборки проекта миграции (Migrate.exe).

Примечание: Сгенерированные скрипты будут содержать вставки в таблицу версий FluentMigrator.

Другие советы

After reading Command Line Runner Options I'd use --verbose=true to output the sql script and --output to save it to a file. There seems to be no 'dry run' option however - you'll need to run the migration in some preproduction environment to obtain the script.

Give it a shot as I've admittedly never tried it.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top