我試圖將生成的DDL導出到輸出文件,而不是在命令提示符中直接顯示hbm2ddl.auto = update(使用自動模式生成)。休眠:使用hbm2ddl工具中的update =「true」和outputfilename生成DDl到輸出文件
我知道這可能不是一個好主意,使用此生產數據庫生成架構。我已經通過討論它的線索了。
Hibernate: hbm2ddl.auto=update in production?
我想利用這個對於開發/測試數據庫。
但是,我在這裏面臨的挑戰是它不發出生成的DDL到一個輸出文件,即使我現在用的是「outputfilename」屬性,就是hbm2ddl
出口國。 (按照這個http://docs.jboss.org/tools/2.1.0.Beta1/hibernatetools/html/ant.html)
這是我的build.xml的樣子。我正在使用Hibernate的Jpa配置。
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="classpath.hibernate" />
<target name="db_update_schema_sql" depends="db_config"
description="create SQL script for updating schema">
<hibernatetool destdir="${out.dir}">
<jpaconfiguration persistenceunit="${persistence.unit.name}"/>
<classpath path="${build.classes.dir}"/>
<hbm2ddl export="false" create="false" update="true" drop="false" outputfilename="update.sql" delimiter=";" format="true"/>
</hibernatetool>
</target>
<target name="db_full_update" depends="db_config" description="Updates database">
<antcall target="db_update_schema_sql" />
</target>
當我設置update =「true」時,從不創建/更新「update.sql」。當我使用create =「true」或drop =「true」或兩者時,它只創建/更新。
我對此進行了一點挖掘。我在Hibernate Jira中發現了一些與此相關的問題。它仍然說它沒有解決。有一個補丁可用於此。不確定
是否有人使用過這個補丁。
https://hibernate.onjira.com/browse/HHH-1186 https://hibernate.onjira.com/browse/HBX-757
如果有人使用此更新=「真」功能直接將文件生成DDL向我解釋,他們是怎麼做到的我會很感激。另外,如果你使用這個補丁,你能告訴我你是如何將補丁應用到現有的Jar文件的。
感謝, SM