0

手動移行を実行するときにエラーを無視する方法はありますか?

さまざまな状態のクライアントデータベースがあり、それらをすべて最新バージョンに更新する必要があります。

エラーを無視することについて質問する理由は、移行を次のようにコーディングしたいからです。

    public override void Up()
    {   
        AddColumn("ClientUser", "LastSyncTime", c => c.Guid());
        AddColumn("ClientUser", "FileTransferToken", c => c.Guid());
        AddColumn("ClientUser", "DateFileTransferTokenIssued", c => c.DateTime());
    }

ただし、当然のことながら、予想どおり、列がすでに存在する場合は例外がスローされます。

4

2 に答える 2

2

いいえ。EF移行のユースケースは想定されていません。移行により、データベースが1つの定義済み状態から別の定義済み状態に移動します。さまざまな状態のデータベースがある場合は、それぞれが移行の一部のみをカバーする複数の移行が必要です。

複数のデータベースを使用する既存のプロジェクトで移行の使用を開始する場合は、最初にすべてのデータベースを移行なしで同じ状態に移動し、初期状態として使用を開始する必要があります。その後、すべての変更は移行によってのみ処理されます。そうしないと、多くの問題が発生します。

于 2012-04-20T11:35:12.473 に答える
0

これはあなたの特定の質問に答えるものではありませんが、あなたの問題に対する答えかもしれません。

VS 2010のデータベースプロジェクトを使用して、ターゲットデータベースのスキーマを作成します。

この「ゴールドスタンダード」スキーマを使用して、さまざまな状態にある他のデータベースを比較し、現在のスキーマからターゲットスキーマに移行するためのデルタスクリプトを作成できます。

データベース全体で既知の状態になったら、スキーマのデータベース移行に切り替えて先に進みます。

キース

于 2012-04-20T15:19:08.727 に答える