11

流暢な移行ツールを使用して、自分のプロジェクトで移行を機能させようとしています。しかし、ドキュメントが不足しているため、ロールバックしDownて移行クラスに対してメソッドを呼び出す方法を理解するのに苦労しています。

最初のバージョン 1 クラスを使用してデータベースをセットアップしました。

[Migration(1)]
public class Baseline : Migration
{
    public override void Up()
    {
        Execute.Script("1_Baseline\\baseline.sql");
    }

    public override void Down() { }
}

以下を含むバッチファイルを介して移行を実行しています。

"....\tools\fluentmigrator\migrate.exe" --connection "データ ソース=.\sqlexpress;初期カタログ=ekmDomains;統合セキュリティ=true;multipleactiveresultsets=true;" --db SqlServer2005 --target "bin\Release\EkmDomains.Migrations.dll"

これはうまくいきます。そこで、テストするためだけに 2 つ目の移行クラスを作成しました。

[Migration(2)]
public class AddNewTable : Migration
{
    public override void Up()
    {
        Create.Table("NewTable").WithColumn("name").AsString();
    }

    public override void Down()
    {
        Delete.Table("NewTable");
    }
}

再びバッチ ファイルを実行すると、すべて正常に動作します。次に、流暢な移行ツールのコマンド ライン オプションを調べたところ、オプションが見つかりました--version。以前のバージョンにロールバックするには、単に指定するだけで of が呼び出されると想定し--version 1ましDownAddNewTable。しかし、それは起こりませんでした。コンソールは単に「committing transaction」メソッドを表示して閉じます。ただし、テーブルは削除されておらず、バージョン番号も変更されていません。

私はこれを間違った方法で行っていますか、それとも私がこれを行っている方法に根本的な欠陥があると誰かが見ることができますか?

4

1 に答える 1

17

下に移行するには、を使用します-t migrate:downrollback:toversionダウンとアップに加えて、migrate.exeのヘルプにはロールバックとがリストされていますrollback:all

于 2011-12-06T18:31:59.137 に答える