SVNを使用してMavenプロジェクトで実際にLiquibaseを使用する方法
-
17-09-2020 - |
質問
先週私はLiquibaseクイックスタートとすべての関連チュートリアルについて読みましたが、私はデータベースの連続的な変化のためにそれを使用することについて全体のドリフトを手に入れないように感じます。
3つのモジュールでMavenを使用してNetBeansでアプリケーションを開発しています.bunitモジュール、サービスモジュール、およびWebアプリケーションモジュール。DBUnitがデータベースのものを使用している可能性がある場合、サービスはITの上にあり、Webアプリはを使用しています。 services.so親POMは、すべてのJARとプラグインのすべてのグループ化、artifactids、およびバージョンの宣言を持っています。
DBは既に存在しているため、コマンドラインからChangeLogファイルを生成し、Liquibase Mavenプラグインを使用してすべてを設定していると想定しています。
質問1 :私は今データベースの変更をしているので、Liquibaseの目標は何ですか?
質問2 :たとえばデータベースに新しいテーブルを追加したい場合は、この新しいチェンジセットを同じChangeLogファイルに追加するか、新しいchangelog.xmlファイルを作成する必要があります。 ?
質問3 :DBUnitが実行されたときはチェンジセットを実行しますが、プラグインをTh WebAppモジュールに追加する必要があります(たぶん貨物プラグインで展開する前にLiquibaseの目標を実行すること)。またはDBUnitはその世話をするでしょうか?
質問4 :チェンジログの状態を維持するのに役立つのはどのように役立ちます(クランプログが1つしか質問2に推薦すると仮定)
これを読んでくれてありがとう助けてくれてありがとう。
解決
- http://www.liquibase.org/documentation/maven
だからあなたはあなたのLiquibaseの実行を
のような段階にバインドするべきです
.<phase>process-resources</phase>
しかし、私はSpring Executorを使います。だから私のアプリが起動するたびに、Databaseで不足している変更要素を実行するためにLiquibase Executorが起動します。あなたの仕事とあなたのテストの準備ができているとき、Liquibaseはあなたのdevデータベースを更新しましたが、あなたの生産データベースは更新しました。しかし、WARをインストールしてWebアプリを起動すると、Liquibaseは自動的にデータベースを現在の状態にします。それで、あなたの新しいバージョンを展開する前にいくつかの追加のものをすることを忘れないでください。
-
changelog.xmlを含め、このような変更
http://www.liquibase.org/xml/ns/dbchangeLog/dbchangeLog-1.9.xsd ">
新しいテーブルが必要な場合は、ChangeLog-0002.xmlファイルを追加してマスターchangelog.xml に参照してください。
-
-
回答を見る1.私はあなたのWebAppモジュールにも置くでしょう。
-
多くの変更要素ファイルを持つ必要があります。だからこの質問は適用されません。