2016-07-24 6 views
0

私はLiquibaseとFlywayの両方に新しいです。ハローワールドをやろうとしていた。私はLiquibaseとFlywayの両方を使って、基本的なSQL(insertなどの作成)を正常に実行しました。 コマンドラインから実行することに興味がありました。LiquibaseはFlywayのような新しいチェンジセットファイルを自動作成できますか?

フライウェイは:

  • は一種の簡単
  • 私は正しい命名形式正しいフォルダ内の「V1_xxxx.sql」「フライウェイ/ SQL」&実行中のSQLファイルを入れていたと開始することでした'flyway migrate'
  • 正しいファイル名を指定すると、新しいsqlファイルが自動的に選択されたことが一番良かったです。

LiquiBaseを:

  • は、正しいファイル名を毎回与える必要が

    LiquiBaseを--driver = com.mysql

  • それを理解して使用するためにいくつかの時間を費やす必要がありました.jdbc.Driver --classpath =/path/to/classes --changeLogFile = com/example/db.changelog .xml --url = "jdbc:mysql:// localhost/example" --username = dev移行する

    LiquiBaseを--driver =はcom.mysql.jdbc.Driver --classpath = /パス/に/クラス--changeLogFile = COM /例/ db.changelog の.xml --url =「JDBC:MySQLの:// localhost/example "--username = devマイグレーション

新しいxmlファイルを自動的に選択する方法はありますか? Flywayのように私はちょうどフォルダー名を与えることができ、LiquibaseはそのテーブルDATABASECHANGELOGを使ってデルタを見つけて同じように実行することができます。 LiquiBaseを用

2番目の質問のみ

Windowsでコマンドを正常に実行するために、私はchangeLogFileパラメータを変更するには... ...

liquibase --driver=com.mysql.jdbc.Driver --classpath=/path/to/classes --changeLogFile=com/example/db.changelog1.xml  --url="jdbc:mysql://localhost/example" --username=dev migrate 

から

liquibase --driver=com.mysql.jdbc.Driver --classpath=/path/to/classes --changeLogFile=./db.changelog1.xml  --url="jdbc:mysql://localhost/example" --username=dev migrate 
に持っていました

つまり、現在の作業ディレクトリをcom/exampleに変更してから、changeLogFileパラメータを変更して、現在のフォルダと実行コマンド。

は、私が別のフォルダにchangeLogFileを指すことができる方法は、(離れて現在のフォルダから)ありますが、コマンドラインから使用するLiquiBaseを少し簡単にするために行うことができます

答えて

0

ことの一つは、liquibase.propertiesという名前のファイルを作成することで、コマンドを実行しているディレクトリにそれを保存します。正しく覚えていれば、コマンドラインはその名前のファイルを探し、コマンドラインのすべてのオプションを要求するのではなく、そのファイルのプロパティを使用します。詳細は、http://www.liquibase.org/documentation/liquibase.properties.htmlおよびhttp://www.liquibase.org/documentation/command_line.html#using_a_liquibase.properties_fileを参照してください。

コマンドラインで常にオプションを指定したくない場合は、 はデフォルト値を含むプロパティファイルを作成できます。デフォルトでは、 Liquibaseは、現在の作業ディレクトリ で "liquibase.properties"というファイルを探しますが、--defaultsFileフラグを付けて別の場所 を指定することができます。 プロパティファイルでオプションを指定し、コマンドラインで同じオプションを指定した場合は、コマンドラインの の値がプロパティファイルの値を上書きします。

はい、liquibaseは自動的にディレクトリからファイルを読み込むことができます。コマンドラインやプロパティファイルから参照される単純なchangelog.xmlを持つ必要がありますが、その変更履歴ログは、より多くの変更ログファイルを含む別のディレクトリを参照するだけです。詳細については、<includeAll>タグがこの目的で使用されています(http://www.liquibase.org/documentation/includeall.html参照)。

また、はい、好きな場所にchangelogファイルを置くことができます。

関連する問題