2013-05-03 8 views
0

Maven 프로젝트와의 통합 테스트를 위해 두 개의 다른 데이터베이스를 정리하고 채우고 싶습니다. sql-maven-plugin을 사용했지만 다른 데이터베이스를 처리 할 수 ​​없었습니다. sql-maven-plugin에 대한 플러그인 선언은 하나만있을 수 있으며 configurationexecutions 사이에서 공유됩니다.sql-maven-plugin : 여러 데이터베이스를 정리 하시겠습니까?

어떻게 해결하나요? 이 문제를 해결할 수있는 해결 방법이 있습니까?

미리 감사드립니다.

답변

3

configuration 섹션을 각각 execution 섹션에 정의하고 필요에 따라 구성하면됩니다. 공유 구성을 갖는 대신. 이상한

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>sql-maven-plugin</artifactId> 
    <version>1.5</version> 

    <dependencies> 
     <dependency> 
     <groupId>org.hsqldb</groupId> 
     <artifactId>hsqldb</artifactId> 
     <version>2.2.9</version> 
     </dependency> 
     <!-- you could add dependencies to other database drivers here --> 
    </dependencies> 

    <executions> 
     <!-- execution against database 1 --> 
     <execution> 
     <id>database1</id> 
     <phase>process-test-resources</phase> 
     <goals> 
      <goal>execute</goal> 
     </goals> 
     <!-- specific configuration for execution against database1 --> 
     <configuration> 
      <driver>org.hsqldb.jdbcDriver</driver> 
      <url>jdbc:hsqldb:hsql://localhost:9999/database1</url> 
      <username>sa</username> 
      <password></password> 
      <sqlCommand>select count(TYPE_NAME) from INFORMATION_SCHEMA.SYSTEM_TABLES</sqlCommand> 
     </configuration> 
     </execution> 
     <!-- execution against database 2 --> 
     <execution> 
     <id>database2</id> 
     <phase>process-test-resources</phase> 
     <goals> 
      <goal>execute</goal> 
     </goals> 
     <!-- specific configuration for execution against database2 --> 
     <configuration> 
      <driver>org.hsqldb.jdbcDriver</driver> 
      <url>jdbc:hsqldb:hsql://localhost:8888/database2</url> 
      <username>sa</username> 
      <password></password> 
      <sqlCommand>select count(TYPE_NAME) from INFORMATION_SCHEMA.SYSTEM_TABLES</sqlCommand> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
나는 이런 식으로 뭔가를 실험했다
+0

하지만 내가 SQL-받는다는 - 플러그인 실행 중 하나를 참조하지 않는 것이 나에게 발생 : 그래서 여기

두 개의 서로 다른 HSQLDB 데이터베이스에 연결하는 예입니다 . 아마 내가 (심지어 내가 외부 수준의 구성을 가지고 있지만) 몇 가지 오류를 만들었습니다. 확인해 볼께 고마워! – rlegendi

+0

각 실행 섹션에 고유 한'id' 태그를 지정해야합니다. 그렇지 않으면 서로를 덮어 쓸 수 있다고 생각합니다. 나는이 예제를 지역적으로 사용했는데 문제없이 작동했다. – DB5

+0

예, ID가 다르므로이 솔루션을 적용 할 수 있는지 확인하겠습니다. – rlegendi