假设我使用FluentMigrator创建了一个三个表,并分别给出了版本号1,2,3。现在有没有办法回滚到版本2.我的意思是回滚后我应该有表1和2但不是3。
答案 0 :(得分: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"
然后你会使用第四个选项:down如下
所以在你的例子中," down 2&#34 ;,这将回滚3,你会保持1和2.
的更多信息答案 1 :(得分:0)
使用以下命令向下迁移到版本2。以下命令将对所有迁移号大于2的文件执行down方法。
migrate --conn "<Your Connection String>" --provider sqlserver --assembly "<Dll path of the Migration files assembly>" --task migrate:down --version 2