2014-04-28 2 views
2

저는 liquibase를 우리의 응용 프로그램과 통합하려고합니다. 나는 Maven 통합 접근법을 사용하여 그것을 실행 중이다.Liquibase - 오류 : 관계 "databasechangelog"가 이미 존재합니다

실행할 때 databasechangelog 생성 스크립트가 두 번 호출되어 "테이블이 이미 있습니다"라는 오류가 표시됩니다. 아래는 콘솔의 문장입니다. liquibase-core-3.1.1 jar를 사용하고 있습니다.

INFO 2014-04-28 06:49:liquibase: Successfully acquired change log lock 
INFO 2014-04-28 06:49:liquibase: Creating database history table with name: databasechangelog 
INFO 2014-04-28 06:49:liquibase: ChangeSet src/main/resources/sql/postGre/db.changelog-2.0.xml::1::fms ran successfully in 555ms 
INFO 2014-04-28 06:49:liquibase: Creating database history table with name: databasechangelog 
SEVERE 2014-04-28 06:49:liquibase: Error executing SQL CREATE TABLE databasechangelog (ID VARCHAR(63) NOT NULL, AUTHOR VARCHAR(63) NOT NULL, FILENAME VARCHAR(200) NOT NULL, DATEEXECUTED TIMESTAMP WITH TIME ZONE NOT NULL, ORDEREXECUTED INT NOT NULL, EXECTYPE VARCHAR(10) NOT NULL, MD5SUM VARCHAR(35), DESCRIPTION VARCHAR(255), COMMENTS VARCHAR(255), TAG VARCHAR(255), LIQUIBASE VARCHAR(20), CONSTRAINT PK_DATABASECHANGELOG PRIMARY KEY (ID, AUTHOR, FILENAME)) 
org.postgresql.util.PSQLException: ERROR: relation "databasechangelog" already exists 

POM 파일 항목

<plugin> 
      <groupId>org.liquibase</groupId> 
      <artifactId>liquibase-maven-plugin</artifactId> 
      <version>2.0.1</version> 
      <configuration> 
       <changeLogFile>src/main/resources/sql/postGre/changelog-master.xml</changeLogFile> 
       <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase> 
       <defaultschemaName><<my application schema>> </defaultschemaName> 
       <driver>org.postgresql.Driver</driver> 
       <url>jdbc:<<mydburl>> </url> 
       <username>user</username> 
       <password>pwd</password> 
      </configuration> 
      <executions> 
       <execution> 
        <goals> 
         <goal>update</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

내가 잘못거야 어디

+0

버전 3.1.1에서 liquibase-maven-plugin을 사용해 볼 수 있습니까? –

+0

시도해 보았습니다. – rvini

+0

defaultSchemaName을 사용한 예는 자리 표시 자 다음에 공백이 있습니다. 그 공간이 실제로 거기에 있습니까? defaultSchemaName없이 시도해 볼 수 있습니까? –

답변

0

는 수락 9.1 버전이 작동, 우리는 posgres의 이전 버전을 사용하고있어 .. 나를 보자 바랍니다 이제는 defaultSchemaName과 그 작업 구조입니다. 모든 제안을 주셔서 감사합니다.

관련 문제