Translations of this page?:
LiquiBase は、下記のように実行することで、コマンドラインから実行できます。 liquibase [オプション] [コマンド] (または、liquibase コマンドをjava -jar <liquibase-jar へのパス> で置き換えることもできます)。コマンドライン migrator は、必要に応じて移行したいが、Ant や Maven などがサーバーにない場合に適しています。 コマンドライン migrator は、 サーブレットリスナー, Ant, または Maven よりも多様な制御ができます。たとえば、メンテナンスコマンドを実行して SQL を出力したり、データベースの変更ログのロックを出力したり、解放したりできます。
コマンドライン migrator よって下記のことが可能です
コマンドライン migrator を引数なしで実行すると、利用可能なパラメータとともにヘルプメッセージが表示されます:
| update | データベースの状態を最新に更新する |
| updateCount <数値> | 次の <数値>文の変更セットを適用する |
| updateSQL | データベースの状態を最新に更新する SQL を標準出力する |
| updateCountSQL <数値> | 次の <数値>文の変更セットを適用する SQL を標準出力する |
| rollback <タグ> | タグが適用された地点までデータベースの状態をロールバックする |
| rollbackToDate <日/時刻> | 指定された日/時刻までデータベースの状態をロールバックする |
| rollbackCount <数値> | 最新の <数値> ぶん変更をロールバックする |
| rollbackSQL <タグ> | タグが適用された地点までデータベースの状態をロールバックするSQL を標準出力する |
| rollbackToDateSQL <日/時刻e> | 指定された日/時刻までデータベースの状態をロールバックする SQL を標準出力する |
| rollbackCountSQL <数値> | 最新の <数値> ぶん変更をロールバックする SQL を標準出力する |
| futureRollbackSQL | 変更ログが適用された後に、現在の状態にまでデータベースの状態を戻す SQL を出力する |
| generateChangeLog | 標準出力に、データベースの変更ログを出力する |
| diff [diff パラメータ] | 差分を標準出力に出力します |
| diffChangeLog [diff パラメータ] | 元のデータベースを対象のデータベースに更新するための XML 変更ログを出力します |
| dbDoc <出力先ディレクトリ> | 現在のデータベースに基づいた変更ログを、Javadoc のような形式でドキュメント出力します |
| tag | 将来のロールバックに備えて現在のデータベースの状態に'タグ'を打ちます |
| status | まだ実行されていない変更セットの数を出力 (–verbose をつけるとそのリスト ) を出力します |
| validate | 変更ログのエラーの有無をチェックします |
| changelogSync | 全ての変更がデータベースで実行されたことに変更します |
| changelogSyncSQL | 全ての変更がデータベースで実行されたことに変更するための SQL を標準出力します |
| markNextChangeSetRan | 次の変更セットをデータベースで実行されたことにします |
| listLocks | データベースの変更ログを誰がロックしているのかを表示します |
| releaseLocks | データベースの変更ログへのロックを解放します |
| dropAll | そのユーザーが保持しているすべてのデータベースオブジェクトを削除します |
| –changeLogFile=<パスとファイル名> | 利用する変更ログファイル名 |
| –username=<value> | データベースユーザー名 |
| –password=<value> | データベースパスワード |
| –url=<value> | データベース URL |
| –driver=<jdbc.driver.ClassName> | データベースドライバクラス名 |
| –classpath=<値> | 移行ファイルと JDBC ドライバを含むクラスパス |
| –contexts=<値> | 実行する変更セットコンテキスト |
| –defaultsFile=<ファイルへのパス> | デフォルトのオプション設定値を含むファイル名 (デフォルト: ./liquibase.properties) |
| –includeSystemClasspath=<true または false> | LiquiBase クラスパスにシステムクラスパスを含むかどうか (デフォルト: true) |
| –promptForNonLocalDatabase=<true または false> | ローカルホストではないホストで稼働しているデータベースの場合にプロンプトを出力するかどうか (デフォルト: false) |
| –currentDateTimeFunction=<値> | SQL で使用されている現在の日時を出力する関数を上書きするかどうか。LiquiBase が対応していないデータベースで有用 |
| –logLevel=<level> | 実行時のログレベル (finest, finer, fine, info, warning, severe) |
| –help | コマンドラインパラメータを出力するヘルプ |
| –baseUsername=<値> | 比較元のデータベースユーザー名 |
| –basePassword=<値> | 比較元のデータベースユーザーパスワード |
| –baseUrl=<値> | 比較元のデータベース URL |
| –baseDriver=<jdbc.driver.ClassName> | 比較元のデータベースドライバーのクラス名 |
コマンドラインで毎回オプションを指定したくない場合、デフォルト値を含むプロパティファイルを作成することができます。デフォルトでは、 LiquiBase は、”liquibase.properties” というファイル名をカレントのディレクトリにないか探しますが、–defaultsFile フラグを利用することで、ほかの場所を指定できます。同じオプションをプロパティファイルとコマンドラインで指定した場合、コマンドラインの設定がファイルの値よりも優先されて使用されます。
java -jar liquibase.jar \
--driver=oracle.jdbc.OracleDriver \
--classpath=\path\to\classes:jdbcdriver.jar \
--changeLogFile=com/example/db.changelog.xml \
--url="jdbc:oracle:thin:@localhost:1521:oracle" \
--username=scott \
--password=tiger \
update
java -jar liquibase.jar \
--driver=oracle.jdbc.OracleDriver \
--classpath=website.war \
--changeLogFile=com/example/db.changelog.xml \
--url=jdbc:oracle:thin:@localhost:1521:oracle \
--username=scott \
--password=tiger \
update
java -jar liquibase.jar \
--driver=oracle.jdbc.OracleDriver \
--classpath=application.ear \
--changeLogFile=com/example/db.changelog.xml \
--url=jdbc:oracle:thin:@localhost:1521:oracle \
--username=scott \
--password=tiger
java -jar liquibase.jar \
--driver=oracle.jdbc.OracleDriver \
--classpath=jdbcdriver.jar \
--url=jdbc:oracle:thin:@localhost:1521:oracle \
--username=scott \
--password=tiger \
updateSQL > /tmp/script.sql
java -jar liquibase.jar \
--driver=oracle.jdbc.OracleDriver \
--classpath=jdbcdriver.jar \
--url=jdbc:oracle:thin:@localhost:1521:oracle \
--username=scott \
--password=tiger \
listLocks
java -jar liquibase.jar update
#liquibase.properties
driver: oracle.jdbc.OracleDriver
classpath: jdbcdriver.jar
url: jdbc:oracle:thin:@localhost:1521:oracle
username: scott
password: tiger