2014-09-22 2 views
0

를 결정하는 데이터 원본org.flywaydb.core.api.FlywayException : 오류 데이터베이스 제품 이름 아래

<bean id="datasource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
     <property name="jndiName" value="java:comp/env/jdbc/intdb" /> 
</bean> 

및 이동 경로 콩 설정에 대한 내 JNDI 룩업있는 동안은 내가 아래에 무엇입니까

<bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate"> 
     <property name="dataSource" ref="datasource" /> 
    </bean> 

입니다 예외가 있지만 JNDI 조회를 콩의 모든 속성으로 대체하면 제대로 작동합니다.

발생 원인 : org.flywaydb.core.api.FlywayEx ception : 이 org.flywaydb.core.internal.dbsupport.DbSupportFactory.createDbSupport에서 org.flywaydb.core.internal.dbsupport.DbSupportFactory.getDatabaseProductName (DbSupportFactory.java:139) (DbSupportFactory.java에서 데이터베이스 제품 이름 을 결정하는 동안 오류 : 59) at org.flywaydb.core.Flyway.execute (Flyway.java:1147) at org.flywaydb.core.Flyway.migrate (Flyway.java:811) at sun.reflect.NativeMethodAccessorImpl.invoke0 (네이티브 java.lang.reflect.Method.invoke (Method.java에서 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) 에서 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) 의 방법) : 597) at org.sp ringframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods에서 (AbstractAutowireCapableBeanFactory.java:1581) (AbstractAutowireCapableBeanFactory.java:1522) org.springframework.beans.factory에서 . 에 oracle.jdbc.dbaccess.DBError.throwSqlException (DBError.java:134) 에서 지원되지 않는 기능 : java.sql.SQLException의 : support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1452) ... 26 개 는에 의해 발생 oracle.jdbc.dbaccess.DBError.throwSqlException (DBError.java:179) oracle.jdbc.dbaccess.DBError.throwSqlException (DBError.java:179) oracle.jdbc.dbaccess.DBError.th의 org.flywaydb.core.internal.dbsupport.DbSupportFactory.getDatabaseProductName에서 oracle.jdbc.OracleDatabaseMetaData.getDatabaseMajorVersion (OracleDatabaseMetaData.java:4442) 에서 rowUnsupportedFeatureSqlException (DBError.java:689) (DbSupportFactory.java:134)

답변

1

내 프로젝트에서 비슷한 구성을 가지고 있습니다. 스프링 컨텍스트 XML에서 나는 가지고있다 :

<bean id="migrationDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="jdbc/myTestDb"/> 
</bean> 
<bean id="dbMigrationManager" class="test.version.DbMigrationManager" init-method="updateDatabaseSchema"> 
    <constructor-arg name="migrationDataSource" ref="migrationDataSource"/> 
</bean> 

내가 DbMigrationManager의 생성자의 인수로 데이터 소스를 포장하고있다. 모양은 다음과 같습니다.

package test.version;

import org.flywaydb.core.Flyway; 

import javax.sql.DataSource; 

public class DbMigrationManager { 

    private final DataSource dataSource; 

    public DbMigrationManager(DataSource migrationDataSource) { 
     this.dataSource = migrationDataSource; 
    } 

    public void updateDatabaseSchema() { 
     Flyway flyway = new Flyway(); 
     flyway.setDataSource(dataSource); 
     flyway.migrate(); 
    } 

} 

또한 나는이 같은 Gradle을에 이동 경로 3.0 버전을 사용하고 있습니다 :

compile group: 'org.flywaydb', name: 'flyway-core', version: '3.0' 

을 그 다음 도움이되지 않으면 어쩌면 당신의 문제가 특정 데이터베이스입니다.이 스레드에서처럼 :

Exception against Oracle DB: "Error while determining database product name: Unsupported feature"

아니면 철새 이동 경로의 일부 오래된, 버그 버전을 사용하고 있습니다.