db-maintainには、ストアド・プロシージャ/トリガなどの反復可能なスクリプトという概念があります。このようなスクリプトに変更があった場合は、再度ロールアウトする必要があります。 Flywayはファイル名の規則を常にチェックしています。繰り返し可能なスクリプトを作成するには、ファイルの名前を変更する必要があります。これを行うより効率的な方法はありますか?flywayを使用して反復可能なスクリプトを効率的に管理する
1
A
答えて
3
フライウェイは、バージョン4.0で繰り返し可能な移行をサポートし始めました。反復可能な移行は、チェックサムが変更されるたびに再適用され、バージョン管理では単一ファイルとして維持できます。
を複数回繰り返し適用することは、同じ繰り返し可能な移行を確実にすることです。これには通常、DDL文のCREATE OR REPLACE句を使用する必要があります。
詳細here。
2
この問題は、Issue Trackerとこのother questionにあります。
現在のところ、この機能のサポートはありません。
個人的に私は、ストアドプロシージャまたはトリガで再現性のアクション
- パッケージを希望し、このプロシージャ/トリガは後に移行ごとに一度呼び出されることを確認し、通常の移行
- の一環として、DBに追加それはそれはまた、定期的な移行の一環として起こる後
- が必要なプロシージャ/トリガーに変更を確実に(わずか1行の文である可能性)
そうでない場合は、Issueにスターを付けてユースケースの詳細をコメントしてください。
更新:繰り返し可能なスクリプトは、現在、Flyway 4.0以降で完全にサポートされています。 https://flywaydb.org/documentation/migration/repeatable
関連する問題
- 1. 効率的な反復が
- 2. 大容量ファイルを効率的に反復処理する
- 3. 3Dアレイでの効率的な反復?
- 4. すべての行を効率的に反復するか?
- 5. BOOST_FOREACHを使用してC++クラスを反復可能にする
- 6. 最も効率的な型の配列を反復する
- 7. データフレームの列を効率的に反復処理する方法は?
- 8. リストを効率的に反復するには?
- 9. マルチマップを効率的に反復するには?
- 10. ネストされたPython辞書を効率的に反復する
- 11. キューブルートのニュートン反復を効率的にシードする
- 12. リスト内のリストを効率的に反復する
- 13. イテレータを使用して反復可能な関数をC++にマップする
- 14. 反復可能なストリームとしてantlr 4 TokenStreamを使用するには?
- 15. Python: "'Nonetype'は反復処理なしで反復不可能です
- 16. ローカル設定ファイルのgitリポジトリを効率的に管理する
- 17. VMインスタンス内のmongodbデータベースを効率的に管理する
- 18. if文を使用して効率的な反復を組み込むアルゴリズムの簡略化
- 19. STモナドのための効率的な反復ループの作成
- 20. より効率的なカラムの反復計算方法
- 21. は、反復可能なエラー
- 22. アルドゥイーノ - C配列を反復処理効率
- 23. ディクショナリを使用してエラーを効率的に処理していますか?
- 24. 効率的なアプローチは、Androidで利用可能です
- 25. groovyスクリプトを使用してsoapuIでテストステップを反復する
- 26. 反復可能な範囲で反復する
- 27. ルックアップテーブル/反復可能なデータを管理する正しい方法/データの正規化
- 28. NSDataを効率的に使用する
- 29. Javaの変数型でパラメータの管理を効率的にコーディング
- 30. SQL管理オブジェクト(SMO)を使用してデータベーススナップショットを復元する
好奇心をそらして:ユースケースをもう少し詳しく説明できますか? –
アイデアは、私たちがコードを維持するのと同じ方法で、ストアドプロシージャとトリガを維持することです。変更が必要な場合は、ファイルを変更するだけで、チェックサムは異なり、スクリプトはdbに再度ロールアウトされます。 スクリプトが実際に繰り返し可能であることを確認することは、もちろん開発者の責任である必要があります。例:MySQLの場合。開発者は、CREATEトリガーまたはプロシージャー・ブロックの前にDROP IF EXISTSステートメントがあることを確認する必要があります。 – gazal
ありがとうございます。私はあなたが今どこから来ているのか理解しています。トリガーとストアドプロシージャは、他のすべてのオブジェクトと同様にデータベースオブジェクトであるため、通常の移行パターンに従う必要があります。 –