2016-04-26 152 views
0

假设我已经使用FluentMigrator创建了三个表,并分别为它们提供了版本号1,2,3。现在有什么办法来回滚,直到第2版。我的意思是回滚之后我应该有表1和2,但不是3回滚到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" 

使用批处理文件然后你可以使用第四个选项:倒在批处理文件所在的目录,在命令行亚军DLL和迁移集DLL如下

  1. 打开CMD需要在该目录
  2. 运行存在以下[批次Fil e名称] .bat down [您想要回滚到的版本:即,您想要作为最后一个的迁移]

因此,在您的示例中,这将是“down 2”,它将回滚3,并且您将保留1和2.

更多关于Command Line Runner