2012-07-12 54 views
0

我試圖建立我的應用程序,所以當它部署在任何環境不受所以我增加了以下的Spring配置它會自動升級數據庫:錯誤7

<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource"> 
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 
<property name="url" value="jdbc:oracle:thin:@${db.host}:${db.port}:${db.database}" /> 
    <property name="username" value="${db.username}" /> 
    <property name="password" value="${db.password}" /> 
    <property name="maxActive" value="4" /> 
    <property name="maxWait" value="5000" /> 
    <property name="defaultAutoCommit" value="false" /> 
    <property name="defaultReadOnly" value="false" /> 
    <property name="validationQuery" value="select '1' from DUAL" /> 
</bean> 
<!-- ADDED IN AN ATTEMPT TO FIX THE PROBLEM --> 
<bean id="flyway-init" class="com.googlecode.flyway.core.Flyway" init-method="init"> 
<property name="dataSource" ref="dataSource" /> 
</bean> 
<bean id="flyway" class="com.googlecode.flyway.core.Flyway" init-method="migrate" depends-on="flyway-init"> 
    <property name="dataSource" ref="datasource"/> 
</bean> 

但是當我在JBoss中7上運行它,我得到以下錯誤:

com.googlecode.flyway.core.validation.ValidationException: Found non-empty schema 'WMYERS' without metadata table! Use init() first to initialize the metadata table.

我已經跑飛路乾淨遷移對數據庫,因此它已經成立,並準備去和SCHEMA_HISTORY表目前有什麼想法?

+0

原來以前的開發人員已經爲init表指定了一個不同的名字,出於一些奇怪的原因....一旦我刪除了它,它一切正常! – 2012-07-13 13:56:14

回答

0

Flyway默認檢查非空架構已被正確初始化。此檢查可確保Flyway在配置錯誤的情況下不會遷移或清除錯誤的數據庫。遷移失敗並拋出此異常,因爲具有已定義名稱的元數據表應該存在,並且在您的數據庫的模式具有某些數據時該元素表爲非空。元數據表可能是手動修改的。