2012-01-31 3 views
0

Oracle 11gR2 데이터베이스에서 간단한 스키마를 다른 스키마로 마이그레이션하려고합니다.
스프링 컨텍스트 내에서 시스템 사용자에게 데이터 소스를 정의하고 대상 스키마에 대한 스키마 매개 변수를 설정했습니다.다른 스키마에서 마이그레이션을 수행하는 방법은 무엇입니까?

하지만 작동하지 않습니다. 모든 테이블은 시스템 스키마 내에서 작성됩니다. 스키마 [0]에는 마이 그 레이션 테이블 만 생성됩니다. 다른 모든 스키마는 비어 있습니다.

다음은 내 코드 조각을 제공 :

<bean id="flywaySYSTEM" class="com.googlecode.flyway.core.Flyway"> 
    <property name="dataSource" ref="dsSYSTEM" /> 
    <property name="schemas"> 
     <list> 
      <value>MZEB</value> 
      <value>MZEB2</value> 
     </list> 
    </property> 
</bean> 


@Test 
/** 
* Test with an local oracle database. 
*/ 
public void createSchemasInOracle(){ 
    Flyway flySYSTEM = (Flyway)beanFactory.getBean("flywaySYSTEM"); 
    flySYSTEM.clean(); 
    flySYSTEM.migrate(); 
} 

SQL :

CREATE TABLE test_user (name VARCHAR(25) NOT NULL,PRIMARY KEY(name)); 

내 예상이 SQL 파일이 지정된 스키마에 수행되는 것이 었습니다.

안부,

마르셀

답변

2

스키마 속성은 어디 메타 데이터 테이블을 만드는 방법 이동 경로를 알려줍니다 청소에 사용할 않은 스키마한다.

마이그레이션에서 접두어가없는 테이블 이름을 참조하면 해당 연결의 기본 스키마가 사용됩니다. 오라클의 경우 일반적으로 현재 사용자를 의미합니다. 이 을 어디에 속해

스키마와 데이터베이스 연결 사용자에게

  • 접두사 테이블 이름을 다음

    • 변화 중 하나를 할 수있는 문제를 해결하기 위해
  • 관련 문제