Flyway Community Edition向け Rollback Extension
(github.com/coder013)なぜ作ったのか
- ECS/EKS 環境ではアプリケーションのロールバックは可能ですが、データベースの変更は自動でロールバックできません。
- Flyway では
undoコマンドでロールバックをサポートしていますが、Enterprise Edition からの機能であり、Community Edition では使用できません。 - Enterprise ライセンスの負担が大きい 個人プロジェクトや小規模チーム のために、この Extension を開発しました。
動作方式
- マイグレーションと同じ方式で
R{version}__*.sqlファイルをdb/rollback/に作成 - アプリケーション起動時に現在のバージョン → ターゲットバージョン間のスクリプトを逆順で実行
主な機能
- Fail-fast 事前検証 — 実行前にロールバックスクリプトの有無を確認
- 単一トランザクション — all-or-nothing を保証
- Dry-run モード — 実行計画のみをログ出力可能
- ロールバック履歴 —
flyway_rollback_historyテーブルにログを記録 - Actuator エンドポイント —
/actuator/flyway-rollbackで適用済みバージョンと利用可能なスクリプトを確認
要件
- Java 17+, Spring Boot 3.x
初めて開発したオープンソースライブラリなので、不足している点も多いかもしれません。使用感や改善提案を気軽にお寄せください。ありがとうございます!
まだコメントはありません。