私は今日からプロジェクトのためにliquibaseを評価しています。liquibase noobの質問のカップル
誰もが手続き、関数、基本的にすべてのplsqlのものを作成するためにそれを使用していますか?
もしそうでなければ、埋め込みSQLコードをxmlファイルに書き込むことはできますか?
ありがとうございます。
私は今日からプロジェクトのためにliquibaseを評価しています。liquibase noobの質問のカップル
誰もが手続き、関数、基本的にすべてのplsqlのものを作成するためにそれを使用していますか?
もしそうでなければ、埋め込みSQLコードをxmlファイルに書き込むことはできますか?
ありがとうございます。
手順を管理するためのliquibaseにcreateProcedureタグが組み込まれています。通常は、またはタグをrunOnChangeと組み合わせることが最善の方法です。したがって、定義を更新するときにのみ、liquibaseはプロシージャを更新します。そうすれば、時間の経過とともにchangelog xmlファイル間でdiffを実行し、プロシージャーがどのように変更されたかを見ることができます。
stored-procごとに参照ファイルにsqlFileタグを使用することも一般的です。または、あなたが言ったように、sqlタグを使用してカスタムSQLをインライン化できます。
私はストアドプロシージャにliquibaseを使用していませんが、より汎用的な操作のためにLiquibaseの経験があります。
xmlファイルに埋め込まれているか、外部ファイルから参照されているカスタムSQLを記述することは可能です。
私は、ストアドプロシージャ、トリガ、および関数にsqlタグを使用しようとする際に問題が発生しましたが、私の場合、これらはMySQL JDBCドライバで問題になり、Liquibase自体ではありませんでした。私が解決した練習は、Nathanが示唆するようにsqlFileリファクタリングを使用し、ソースコードシステムでバージョン管理されたchangelogと同じプロジェクトのSP/trigger/functionコードを制御することです。これにより、実際のソースコードと同じようにSP /任意のコードを管理することができます。
sqlFileリファクタリングを含むchangeSetのrunOnChange = "true"の設定は必須です。手続き型データベースコードの実際のソース管理を可能にするのはこのスイッチです(ありがとう、Nathan)。
ちょっとティム、私はそれの要点を取得すれば、 a {schemaName}/sprocs/sproc_name.xmlファイルを入力し、これらのファイルが更新されたときにLiquibaseでスキーマを検出して更新しますか? – David
それはうまくいくだろうが、私はそれが少しかさばるだろうと思う。私が行ったことは、runOnChange = "true" changeSetsを持つ単一の "stored-proc.xml"(または何か)のchangelogを持ち、それぞれがdb/srcにある単一の冪等級のSP作成SQLスクリプトを実行していることです/procs/*.sql(またはどこか)。 SPコードが変更されるたびにその変更ログを更新する限り、データベースとソース管理に常に最新のSPが存在します。新しいSPを追加するときは、その変更ログに新しいチェンジセットを追加します。よく働く! – tlberglund
WOW !!!あなたがここにいることを嬉しく思っています:) – Tom
私はどこにでもいます:あなたが他の質問や問題に遭遇した場合、またはより明確にする必要がある場合はLMK –