Hibernate 統合(1.6 から)
LiquiBase-Hibernate は、Hibernate の”hbm2ddl“機能を代替します。
hbm2ddl と一緒に LiquiBase を利用する利点
hbm2ddl は一般的にはうまく動作しますが、基本的にはデータベースの差分(diff) ツールで、データベース差分ツールに関連する問題点があります。
LiquiBase-Hibernate 統合により、現在の Hibernate マッピングファイルに必要とされるデータベースの変更を変更ログファイルに記録します。これによって、実行前に必要に応じて内容を確認することができます。
開発プロセス
LiquiBase と一緒に Hibernate を利用するには、下記のステップになります:
例
コマンドライン
liquibase \
--driver=oracle.jdbc.OracleDriver \
--classpath=jdbcdriver.jar:hibernate.jar \
--url=jdbc:oracle:thin:@localhost:1521:oracle \
--username=scott \
--password=tiger \
--changeLogFile=path/to/changelog \
diffChangeLog \
--baseUrl=hibernate:YOUR_HIBERNATE.CFG.XML \
: The above code should actually read like this:
liquibase \
--classpath=jdbcdriver.jar:hibernate.jar \
--changeLogFile=path/to/changelog \
--url=hibernate:YOUR_HIBERNATE.CFG.XML \
diffChangeLog \
--baseDriver=oracle.jdbc.OracleDriver \
--baseUrl=jdbc:oracle:thin:@localhost:1521:oracle \
--baseUsername=scott \
--basePassword=tiger
Ant
<target name="hibernate-update" depends="prepare"> <taskdef resource="liquibasetasks.properties"> <classpath refid="classpath"/> </taskdef> <diffDatabaseToChangeLog driver="${database.driver}" url="${database.url}" username="${database.username}" password="${database.password}" baseUrl="hibernate:YOUR_HIBERNATE.CFG.XML" outputFile="path/to/changelog.xml" classpathref="classpath" > </diffDatabaseToChangeLog> </target>
