2012-07-24 6 views
8

私たちのシステムフライウェイでマイグレーションを再実行するにはどうすればよいですか?

私たちはバージョン管理下で.sqlファイルとして移行しようとしています。開発者はVN __ *。sqlファイルを作成し、バージョン管理にコミットし、5分ごとに実行されるジョブが自動的にDevおよびTestデータベースに移行します。変更が問題を起こさないことが判明したら、他の誰かが本番環境での移行を実行するために手動でジョブを実行します。

私の問題:

私はいくつかのテーブルを作成したデモの移行を持っていました。私は自分のPC上のバージョンコントロールにV4__DemoTables.sqlをチェックしました。

私たちのLinuxボックスでは、5分ごとに実行されるジョブがバージョンコントロールから新しいファイルを抽出し、flyway.shファイルを実行しました。ファイルを検出して実行しました。

しかし、.sqlファイルにはタイプミスがあります。そして私たちは、BEEIN TRAN ... END TRANでマイグレーションを自動的にラップするフライウェイに問題があるNeteezaを使用しています。そこで、2つのテーブルを作成し、3つ目のテーブルの前に中止しました。

問題はありません。 .sqlファイルが作成した2つのテーブルを削除しました。バージョン管理からV4__を確認し、タイプミスを修正して再提出しました。

5分後に更新が抽出されましたが、フライウェイはチェックサムが一致しないと文句を言います。したがって、更新されたV4__DemoTables.sqlファイルは実行されません。

タイプミスの場合、flywayに更新ファイルを受け入れ、SCHEMA_VERSIONファイルのチェックサムを更新するにはどうすればよいですか?

開発者がドキュメントの内容を読んでいると、修正プログラムを含む新しいV4_1_DemoTables.sqlファイルを作成する必要があるようです。しかし、これはV4__ファイルのコマンドと衝突していたので、これは間違っていたようです。だからここ

は、ドキュメントは、私が行う必要が暗示するものである:

  • 休職V4__「成功」移行など SCHEMA_VERSIONテーブルに従って。

    V4_1_を作成して、V4__のtypo 行の前に作成された表を削除します。

    すべてを行うように元のファイルから入力ミスを修正したV4_2_を作成してください。 実際の作業。

これは間違いありませんか?

答えて

11

移行が正常に完了しますが、DBオブジェクトのいくつかはかなり右まだない場合は、あなたが言ったようにやると、それを修正フォローアップスクリプトを押す(列名、...のタイプミス) (列の名前を変更...)。

移行を失敗し、それがDDLトランザクションとDB上で実行しなかった場合、DBはを手動洗浄しなければなりません。これは、この第2のステップは、将来的に自動化される現在

として

+0

迅速な対応をありがとうございます。私は前の行を最新のものとしてマークすることについて知らなかった。 –

関連する問題