問題タブ [liquibase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database-migration - 空の既存のデータベースを使用したLiquibaseデータベースの移行
Spring、JPA / Hibernate、MS SQL Server/PostgreSQLを使用してJavaWebアプリケーションを開発しています。インストールされているシステムのデータベースの移行を簡単にするために、Liquibaseを統合して、アプリケーションの起動時に自動的に更新を実行したいと思います。現在、私は常に正しい順序で手動で実行する必要がある更新スクリプトを作成しています。
Springとの統合をテストしたところ、非常に迅速に機能するようになりました。Liquibaseのメタテーブルは最初のチェンジセットで作成され、変更を実行します。問題は、すでにいくつかのシステムがインストールされていることですが、将来的には他のインストールが行われる可能性があります。
Liquibaseを使用して、データベースが空であるかどうかを検出し、新しくインストールしたシステムでDDLを自動的に実行することは可能ですか?それ以外の場合は、手動でDDLを実行してから、アプリケーションを起動する必要があります。
私が欲しいのは、データベースが空のときに自動的に初期化されるか、データベースがすでに存在する場合は更新されることです。Liquibaseでそれを行う可能性はありますか、それともこれを機能させるためのトリックはありますか?
java - Liquibase クラスが 1.9 から 2.0.3 にない
Liquibase を 1.9 から 2.0.3 に更新しているときに、FileSystemFileOpener.java が見つからないようでした。
2.0.3 バージョンの FileSystemFileOpener.java に代わるものがあるかどうか教えてください。2.0.3 バージョンで行われたそのような変更はどこにありますか?
grails - Grails db 移行プラグイン
データベースモデルを変更しようとしているので、このチュートリアルに従いました。ところで、Grails 1.3.7 を使用しています。
私は走った:
無事取り付けました!
しかし、私が走ったとき:
次のエラーが表示されました。
maven-plugin - liquibase updateSQL
updateSQL ゴールを使用して、変更スクリプト (SQL ファイル) を生成しています。
結果の SQL ファイルには、スキーマ名 (ユーザー名) が付加されていません。これを達成する方法はありますか?
create table changeSet の結果は
私が欲しいのは
generate-resources に defaultSchemaName を追加しようとしました
助けていただければ幸いです。
ありがとう
grails - Grailsdb-migrationテーブルはすでに存在します
Grails1.3.7とdb-migrationプラグインを使用しています。
デルタを含むchagelog.groovyファイルを生成しました。次のプロパティを設定します。
これで、Datasource.groovyに、更新するdbCreateがあります。
アプリケーションを起動すると、デルタにあるテーブルがすでに作成されていることがわかります。
これについて何かアイデアはありますか?
java - Spring MVCプロジェクト内にあるスクリプト(実行可能クラス)を実行するにはどうすればよいですか?
私はSpringMVCアプリケーションを開発しており、Mavenを使用しています。私は現在、いくつかのJava「スクリプト」を作成しようとしています(「スクリプト」と呼ぶべきかどうかはわかりません。実際には、コマンドで呼び出すことができる「main(String [] args)メソッドを持つJavaクラス」を意味しますline)Liquibaseを使用していくつかの作業を行います。
「スクリプト」は、Spring MVCアプリケーションからいくつかのコンテキストファイルをロードし、Webアプリケーションからプロパティファイルにアクセスします。したがって、アプリケーションなどと同じデータベース接続設定を使用できるようになります。
私の質問は、これらのスクリプトを実行する方法ですか?
ローカルではEclipseを使用しており、これらの「スクリプト」の実行は「Run As/JavaApplication」を使用して簡単に行えます。しかし、私はそれらを自分のprodサーバーでも実行できるようにしたいので、Eclipseを使用してそれらを起動することはできません。そこで実行できるようにするにはどうすればよいですか?
アプリケーションを.war以外の形式でエクスポートする必要がありますか?「java-jar」を使用してスクリプトを実行できるようにするには、プロジェクトから追加の.jarを作成する必要がありますか?
それらのスクリプト用に別のプロジェクトを作成する必要がありますか?しかし、スクリプトは、他のプロジェクトにあるSpring MVCアプリケーションから必要なコンテキストをロードできるでしょうか?
多分私が見ないこれを行う簡単な方法がありますか?
更新:私が望むことを達成できると思う1つの方法は 、実行するタスクへの扉としてWebサービスを公開するWebアプリケーションを用意することです。次に、コマンドラインでwgetなどを使用してそれらを呼び出すことができます。ただし、Webサービスを作成しなくても、クラスに直接アクセスできるようにしたいと思います。
java - Springliquibaseチェンジセットファイルの更新
私はliquibaseを初めて使用します(Spring Liquibaseを使用しています)...手動のデータベース変更をliquibaseのチェンジセットファイルに反映させることが可能かどうかを誰かに説明してもらえますか...つまり、テーブルAがある場合初めて、そしてそれから列を削除した後、変更セットファイルでそれを自動的に更新する方法...
ありがとう
言い換えれば、私は春のliquibaseまたはjavaからのliquibasediff操作を探しています
もう一度ありがとう
mysql - Liquibase で既存のデータを使用しますか?
Liquibase を使用する場合、挿入するデータの一部を生成するために既存のデータを使用する方法はありますか?
たとえば、ID 5 の行を更新したいとしますが、実際に ID を取得する別のテーブルにリンクされているため、ID が 5 になることを前もって知りません。Liquibase に SELECT クエリから ID を取得するように指示する方法はありますか?
Liquibase は非常に構造化された非動的なアプローチ向けに設計されていると感じているので、これは実際には不可能だと思いますが、質問しても問題ありません。
ありがとう。
maven - 変更なしの Liquibase チェックサム検証エラー
Maven は、変更セットに変更が加えられていなくても、liquibase の検証に失敗します。
私のデータベースはオラクルです。
状況:
DB changelog テーブルには changeset のレコードがありました
<changeSet id="1" author="me" dbms="oracle">
。その後、誤って別の変更セットを追加しました
<changeSet id="1" author="me" dbms="hsqldb">
Liquibase スクリプトの再実行 Maven がチェックサム検証エラーを発生させました。
次に、hsqldb changeSet を次のように変更しました
<changeSet id="2" author="me" dbms="hsqldb">
Maven はまだチェックサム検証エラーを発生させています。
次に、DB の最初の changeSet チェックサムを手動で現在の checkSum に変更し、スクリプトを正常に実行しました。
すべてがうまく見えますが、アプリケーション全体を再デプロイして liquibase スクリプトを実行すると、最初の changeSet のチェックサムは 6 ステップの前と同じです。
sql - データベースの移行にLiquibaseを使用する利点はありますか?
私はLiquibaseを評価しており、SQLスクリプトを使用するよりもデータ移行に利点があるかどうかを調べています。私が次のことをしているとしましょう:
私のバージョン0のデータベーススキーマは次のようになります。
データベースには、次の挿入で表される既存のデータが入力されています。
次に、nullではない別の列をPersonテーブルに追加することにしましたが、既存のデータを失いたくありません。バージョン0からバージョン1への移行スクリプトは次のようになります。
Liquibaseはこのユースケースを簡単にすることができますか?