今日から始まるプロジェクトのliquibaseを評価しています。
プロシージャ、関数、基本的にすべてのplsqlのものを作成するために誰かがそれを使用しましたか?
そうでない場合、xmlファイルに埋め込みSQLコードを書き込むことは可能ですか?
前もって感謝します。
liquibaseには、プロシージャを管理するための組み込みのcreateProcedureタグがあります。最善のアプローチは通常、またはタグをrunOnChangeと組み合わせて、定義を更新したときにのみliquibaseがプロシージャを更新するようにすることです。このようにして、changelog xmlファイル間で時間の経過とともに差分を取り、プロシージャがどのように変更されたかを確認できます。
sqlFileタグを使用してストアドプロシージャごとにファイルを参照することも一般的です。または、前述のように、sqlタグを使用してカスタムSQLをインライン化できます。
ストアドプロシージャ、トリガー、関数にsqlタグを使用しようとすると問題が発生しましたが、私の場合、これらはMySQL JDBCドライバーの問題であり、Liquibase自体の問題ではありませんでした。私が決めた方法は、ネイサンが提案するようにsqlFileリファクタリングを使用してから、ソースコードシステムでバージョン管理された変更ログと同じプロジェクトでSP/トリガー/関数コードを制御することです。これにより、実際のソースコードと同じようにSP/その他のコードを管理できます。
sqlFileリファクタリングを含むchangeSetでrunOnChange="true"を設定することが不可欠です。手続き型データベースコードの実際のソース管理を可能にするのは、このスイッチ(ありがとう、ネイサン)です。
ストアドプロシージャにliquibaseを使用したことはありませんが、より一般的な操作にLiquibaseを使用した経験があります。
xmlファイルに埋め込まれているか、外部ファイルから参照されているカスタムSQLを作成することができます。