2012-07-12 2 views
0

나는 내가 봄의 설정에 다음을 추가 한 그래서 어떤 envrionment에 배치 때 자동으로 데이터베이스를 업그레이드 할 수 있도록 내 응용 프로그램을 설정하기 위해 노력하고있어 :오류 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> 

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

이미 이미 설정하고 갈 준비하고 SCHEMA_HISTORY 테이블이되도록 이동 경로가 데이터베이스에 대해 청소 마이그레이션 실행 한 : 나는 보스 7에서 실행할 때 나는 다음과 같은 오류가 발생합니다 선물, 어떤 아이디어?

+0

이전 개발자가 약간의 기괴한 이유로 init 테이블에 다른 이름을 지정했다는 것을 알게되었습니다. 일단 이것을 제거하면 모든 것이 잘 작동합니다! –

답변

0

이동 경로 기본값은 비어 있지 않은 스키마가 제대로 초기화되었는지 검사합니다. 이 점검은 구성 실수의 경우 Flyway가 잘못된 db를 마이그레이션하거나 청소하지 않도록합니다. 데이터베이스의 스키마에 데이터가있는 경우 이름이 정의 된 메타 데이터 테이블이 있어야하며 비어 있지 않으므로이 예외가 발생했습니다. 아마도 메타 데이터 테이블이 수동으로 수정되었을 것입니다.