0
我有一個項目,我正在爲使用hibernate實現jpa的學校開展工作。我的問題是,如果在休眠屬性文件中關閉模式生成,並且我想手動更新模式(我的ddl文件),並將我的模式與應用程序一起部署,那麼需要在我的<build></build>
中包含什麼內容標記將架構作爲部署的一部分?瞭解Maven構建過程
在src/main/resources下我有一個包含表創建腳本的ddl目錄。
我有一個項目,我正在爲使用hibernate實現jpa的學校開展工作。我的問題是,如果在休眠屬性文件中關閉模式生成,並且我想手動更新模式(我的ddl文件),並將我的模式與應用程序一起部署,那麼需要在我的<build></build>
中包含什麼內容標記將架構作爲部署的一部分?瞭解Maven構建過程
在src/main/resources下我有一個包含表創建腳本的ddl目錄。
您將需要使用sql-maven-plugin在構建過程中執行sql
像
<build>
[...]
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version>
<dependencies>
<!-- specify the dependent jdbc driver here -->
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.1-407.jdbc3</version>
</dependency>
</dependencies>
<!-- common configuration shared by all executions -->
<configuration>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgressql://localhost:5432:yourdb</url>
<username>postgres</username>
<password>password</password>
<!-- You can comment out username/password configurations and
have maven to look them up in your settings.xml using ${settingsKey}
-->
<settingsKey>sensibleKey</settingsKey>
<!--all executions are ignored if -Dmaven.test.skip=true-->
<skip>${maven.test.skip}</skip>
</configuration>
<executions>
<execution>
<id>create-data</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<orderFile>ascending</orderFile>
<fileset>
<basedir>${basedir}</basedir>
<includes>
<include>src/test/sql/test-data2.sql</include>
</includes>
</fileset>
</configuration>
</execution>
</plugin>
[...]
</plugins>
[...]
</build>
根據您的數據庫
構建恰好我的機器上,但應用程序的更改配置實際上正在部署到其他地方的服務器,那麼這是如何工作的? – user1154644
生產數據庫的部署應該獨立於構建過程,它應該綁定到應用程序的引導程序,這更適合測試數據庫的創建,以便測試執行,如果您仍然希望這樣做,只需更改數據庫url和其他配置,它就會指向到遠程機器 –