Translations of this page?:

Hibernate 統合(1.6 から)

LiquiBase-Hibernate は、Hibernate の”hbm2ddl“機能を代替します。

hbm2ddl と一緒に LiquiBase を利用する利点

hbm2ddl は一般的にはうまく動作しますが、基本的にはデータベースの差分(diff) ツールで、データベース差分ツールに関連する問題点があります。

LiquiBase-Hibernate 統合により、現在の Hibernate マッピングファイルに必要とされるデータベースの変更を変更ログファイルに記録します。これによって、実行前に必要に応じて内容を確認することができます。

開発プロセス

LiquiBase と一緒に Hibernate を利用するには、下記のステップになります:

  1. 必要な変更を Hibernate-mapped オブジェクトに行う
  2. Hibernate 設定ファイルと、開発データベースの間で差分の生成をおこなう ( 下記の例参照 )
  3. 内容を確認し、新規に変更セットを設定 ( 必要な場合 )
  4. 新規の変更セットとともに、データベースを更新

コマンドライン

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 \

FIXME: 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>
 
ja/manual/hibernate.txt · 最終更新: 2010/06/26 07:40 (外部編集)