2016-04-26 18 views
0

Предположим, что я собрал три таблицы с использованием FluentMigrator и дал им версию № 1, 2, 3 соответственно. Теперь Есть ли способ откатить до версии 2. Я имею в виду После отката я должен иметь таблицу 1 и 2, но не 3.Откат к specfic Миграция в FluentMigrator

ответ

3

Вот пакетный файл, я использую с командной строкой бегун инструментом

@echo off 
if "%1" == "rollback" goto rollback 
if "%1" == "" goto migrate 
if "%1" == "version" goto version 
if "%1" == "down" goto down 
goto error 

:migrate 
migrate -db SqlServer2014 -connection "Server=[YOUR CONNECTTION STRING]" -assembly "[YOUR MIGRATION ASSEMBLY]" 
goto done 

:rollback 
migrate -db SqlServer2014 -connection "Server=[YOUR CONNECTTION STRING]" -assembly "[YOUR MIGRATION ASSEMBLY]" -task rollback:all 
goto done 

:version 
migrate -db SqlServer2014 -version "%2" -connection "Server=[YOUR CONNECTTION STRING]" -assembly "[YOUR MIGRATION ASSEMBLY]" 
goto done 

:down 
migrate -db SqlServer2014 -version %2 -connection "Server=[YOUR CONNECTTION STRING]" -assembly "[YOUR MIGRATION ASSEMBLY]" -task rollback:toversion 

:error 
echo "No valid command" 

:done 
echo "Completed" 

Тогда вы будете использовать далее вариант: вниз следующим

  1. Откройте Cmd в каталог пакетный файл существует, бегун DLLs командной строки и DLL миграции сборки должны существовать в этом каталоге
  2. Выполните следующую [Batch Fil е Имя] .bat вниз [Version ХОЧЕТ ROLLBACK TO: т.е. миграция вы хотите в качестве последнего]

Таким образом, в вашем примере это будет «вниз 2», который будет откатить 3, и вы бы держать 1 и 2.

Дополнительная информация о Command Line Runner