0

我在 Visual Studios 的一个项目中添加了几个表。但是,我想使用 FluentMigrator 回滚到以前的版本。但是,在指定用于回滚多个版本的命令时,Git 网站并不是很有帮助:https ://github.com/schambers/fluentmigrator/wiki/Command-Line-Runner-Options

如果我做这个命令行争论,它会恢复我添加的最后两个文件吗?我添加了命令:“rollback:toversion -- version 2”,但我不完全确定我是否使用了这个权利。

--conn "MyProject" --provider sqlserver --a "MyProject.DBMigrations\bin\Debug\MyProject.DBMigrations.dll" --task rollback:toversion --version 2  --verbose true
4

1 回答 1

1

如果要回滚 2 个步骤,请将任务设置为rollback并使用steps开关。

--conn "MyProject" --provider sqlserver --a "MyProject.DBMigrations\bin\Debug\MyProject.DBMigrations.dll" --task rollback --steps 2  --verbose true

如果要回滚到特定版本,请使用rollback:toversion带有version开关的任务。然后,您将 this 引用的版本设置为迁移中迁移属性中的唯一 id。就我而言,我使用日期时间格式进行迁移,因此今天的日期和时间将为 201303062126。

    [Migration(201303062126)]
    public class CreateInitialDB : Migration
    {
        public override void Up()
        {
         ...

如果我想回滚到那个特定版本,它看起来像这样:

--conn "MyProject" --provider sqlserver --a "MyProject.DBMigrations\bin\Debug\MyProject.DBMigrations.dll" --task rollback:toversion --version 201303062126

将会发生的情况是,所有比此迁移更新的迁移都将被回滚,但迁移 201303062126 不会被回滚。

我将更新 wiki 以使下一个人更清楚。

于 2013-03-06T20:31:41.930 回答