8

outOfOrderをtrue に設定すると、ログに次の警告メッセージが表示されます。

警告: outOfOrder モードがアクティブです。移行の実行は再現できない場合があります。

このメッセージの正確な意味は何ですか? 移行が発生するとどうなるか誰かが教えてくれると助かります。どんな例でも役に立ちます。

4

2 に答える 2

7

3つの移行を想定します。

  1. 「トム」と「ジェリー」の2つの名前を作成します
  2. 3番目として「ミッキー」を追加します
  3. 名前を大文字に変える

outOfOrderで実行すると、移行が次のように適用される可能性があります。

1、3、2-> DB内:TOM、JERRY、Mickey

後で再実行すると、

1、2、3-> DB内:TOM、JERRY、MICKEY

これが、outOfOrderが潜在的に危険であり、最初の移行の実行が再現できない可能性がある理由です。

于 2013-03-12T09:05:49.370 に答える
5

Axel の回答に加えて、結果のデータが順序によって異なるだけでなく、移行が不可能な場合もあります。検討:

移行:

  1. テーブルを作成foo
  2. 列を追加foo.bar
  3. 列の名前foo.barをに変更foo.baz

実行順序:

  • 1、2、3 →foo列ありbaz
  • 1、3、… → 適用エラー 3: 列foo.barが見つかりません
  • 2, … → 2 の適用エラー: テーブルfooが見つかりません
  • 3, … → 適用エラー 3: テーブルfooが見つかりません
于 2015-01-13T20:19:09.800 に答える