====== サーブレット・リスナー ====== LiquiBase は、サーブレットリスナーを経由して実行できます。これにより、サイトがデプロイされるときは常に、データベースを最新の状態に保つことができます。LiquiBase は分散ロックシステムを利用していますので、アプリケーションサーバーがクラスタ化されていてもうまく動くでしょう。 サーブレットリスナーを設定するのは、liquibase.jar を WEB-INF/lib ディレクトリに追加し、web.xml ファイルに下記のように設定します: LIQUIBASE_CHANGELOG com/example/db.changelog.xml LIQUIBASE_DATA_SOURCE java:comp/env/jdbc/default LIQUIBASE_HOST_EXCLUDES production1.example.com, production2.example.com LIQUIBASE_FAIL_ON_ERROR true LIQUIBASE_CONTEXTS production liquibase.servlet.LiquibaseServletListener ===== 利用可能な context パラメータ: ===== ^ LIQUIBASE_CHANGELOG | 実行対象の変更ログファイル名 **[必須]** | ^ LIQUIBASE_DATA_SOURCE | LiquiBase を実行するときの JNDI データソース名。MIGRATOR_DATA_SOURCE はそのほかのウェブアプリケーションが利用するデータソースが、テーブルの作成(create)と変更(alter)などを行うのに必要な権限を持っていない場合は、それと異なっていてもかまいません。**[必須]** | ^ LIQUIBASE_HOST_EXCLUDES | LiquiBase が実行してほしく**ない**ホスト名を指定します。このパラメータを設定することで、同一の WAR/EAR を異なる環境の複数のマシンにデプロイでき、それらのマシンのすべてで LiquiBase を実行する必要がありません。 | ^ LIQUIBASE_HOST_INCLUDES | LiquiBase が実行してほしい**特定の** ホスト名を指定します。同一の WAR/EAR を異なる環境の複数のマシンにデプロイでき、それらのマシンのすべてで LiquiBase を実行する必要がありません。 | ^ LIQUIBASE_FAIL_ON_ERROR | エラーが発生したとき、LiquiBase が 例外をスローするかどうかを指定します。この値を "true" (デフォルト値) にすると、例外がスローされ、環境を初期状態に適切に保つことができます。この値を "false" に設定すると、このサイトは通常通りにデプロイされますが、データベースはただしくない状態に陥るでしょう。 | ^ LIQUIBASE_CONTEXTS | カンマ(,)で分けられた 実行される [[contexts | コンテキスト]] | サーバーに migrator を実行させたいけれど、LIQUIBASE_HOST_EXCLUDES や LIQUIBASE_HOST_INCLUDES を設定したくない場合は、 "liquibase.should.run=[true/false]" システムプロパティを指定できます。