2014-07-08 1 views
1

오전 쓰기 스윙 데이터베이스 응용 프로그램에 실패했습니다. 그래서 여기에 내 간단한 db 연결 코드 및 flyway 함께 마이 그 레이션.는 <strong>springToolset</strong> -eclipse 기반 IDE 및 <strong>받는다는</strong>에

메인 클래스는

public static void main(final String[] args) throws SQLException { 
     final BasicDataSource ds = new BasicDataSource(); 
     ds.setDriverClassName("org.h2.Driver"); 
     ds.setUrl("jdbc:h2:target/db"); 
     ds.setUsername("root"); 
     ds.setPassword(""); 

     try { 
      final Flyway flyway = new Flyway(); 
      flyway.setDataSource(ds); 
      flyway.migrate(); // line no :12 
    }} 
이동 경로에 따라

SCHEMA_NAME (2.2.1) 표준은 다음과 같습니다

V1__init_db.sql 그리고 나는이 코드를 실행하면 이 오류가 있습니다 :

Exception in thread "main" com.googlecode.flyway.core.api.FlywayException: 
Migration of schema "PUBLIC" to version 1.2 failed! Please restore backups and roll back database and code! 
     at com.googlecode.flyway.core.command.DbMigrate.migrate(DbMigrate.java:199) 
     at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:872) 
     at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:819) 
     at com.googlecode.flyway.core.Flyway.execute(Flyway.java:1200) 
     at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:819) 
     at com.swdb.exApp.Main.main(12) 

어떤 사람은 error.please 도움말을 알고 있습니다. 그리고 이것은 또한 tutoiral에서 Alber Attardhere

답변

1

귀하의 데이터베이스를 확인하십시오. 이동 경로가 이전에 구성된 스키마에 대해 실행되어 마이그레이션에 실패했습니다. 스키마를 삭제할 수 있다면 flyway.clean()을 발행하면 새로 시작할 수 있습니다. 그렇지 않은 경우 계속하기 전에 수동으로 정리를 수행해야합니다.

+0

** target/db **에서 이전에 생성 된 데이터베이스를 삭제했으며 문제가 해결되었으므로 다시 재생 해 주셔서 감사합니다. – arqai

0

Flyway 개발자가 강조한 것처럼 마이그레이션을 실행할 때 문제가있었습니다.

이상적으로 처음부터 시작합니다. 데이터베이스는 target 디렉토리 (ds.setUrl("jdbc:h2:target/db");) 내의 db 폴더에 작성됩니다. db 디렉토리를 삭제하십시오. 그러면 데이터베이스의 모든 항목이 삭제됩니다. 그러면 이동 경로가 다시 시작되고 이주 스크립트가 실행됩니다.

올바른 버전을 사용하고 있는지 확인하십시오. 이 튜토리얼 (종속성을 Maven을 통해 관리됩니다) 다음 버전의 우리를 만들어 :

<dependencies> 
    <dependency> 
    <groupId>com.h2database</groupId> 
    <artifactId>h2</artifactId> 
    <version>1.3.173</version> 
    </dependency> 
    <dependency> 
    <groupId>commons-dbcp</groupId> 
    <artifactId>commons-dbcp</artifactId> 
    <version>1.4</version> 
    </dependency> 
    <dependency> 
    <groupId>com.googlecode.flyway</groupId> 
    <artifactId>flyway-core</artifactId> 
    <version>2.3.1</version> 
    </dependency> 
</dependencies> 

내가 H2의 일부 최신 버전을 다음 예제와 내 문제를 일으킬와 호환되지 않습니다 생각합니다.

시도해주세요.

감사합니다, 알버트 타드

'버전 스키마의 마이그레이션 "PUBLIC"X.X 실패!'
+0

안녕하세요. – arqai

0

종종 콘솔이나 보고서 파일에 나타날 수 있지만 SQL과 관련된보다 심각한 오류는 숨길 수 있습니다. 이 문제가 발생하면 대상/db 폴더에 .trace.db라는 파일이 있음을 발견했습니다. 이 추적 파일을 텍스트 편집기에서 살펴보면 내가 얻은 정확한 SQL 오류를 보여주었습니다. 제 경우에는 유효하지 않은 열 이름을 삽입하려고했습니다.