2017-02-21 3 views
1

내가 이동 경로를 사용하려고 해요,하지만 난 해결하는 방법을 알고하지 않는 시나리오가 : 나는 표준 스크립트를 적용 할 때이동 경로 조건 DB 마이그레이션

, 나는 V1.0__create_table_TAB1.sql 실행해야을 스크립트를 customer1에 적용하면 TAB1 테이블이 뷰이므로 V1.0__create_view_TAB1_to_schema1.sql을 실행해야합니다.

은 실질적으로 :

└── sql 
    ├── sql_common 
    │ ├── V0.0 __.... sql 
    │ └── V1.0__create_table_TAB1.sql 
    ├── sql_customer1 
    │ └── V1.0__create_view_TAB1_to_schema1.sql 
       └── sql_customer2 
         └── V1.0__create_view_TAB1_to_schema2.sql 

sql_common 폴더의 스크립트는 항상 적용해야한다,하지만 난 1 고객 스크립트에 적용 할 경우 V1.0은 (테이블 TAB1을 만들 수), 적용 할 수 없습니다. 해당 위치에 적용됩니다. V1.0__create_view_TAB1_to_schema1.sql

어떻게 처리 할 수 ​​있습니까?

답변

1

는 다음과 같은 구조를 사용하여 Flyway.setLocations와 함께

└── sql 
    ├── sql_common 
    │ └── V0.0 __.... sql 
    ├── sql_regular 
    │ └── V1.0__create_table_TAB1.sql 
    ├── sql_customer1 
    │ └── V1.0__create_view_TAB1_to_schema1.sql 
       └── sql_customer2 
         └── V1.0__create_view_TAB1_to_schema2.sql 

을(). 정기

  • 는 : flyway.setLocations("filesystem:sql/sql_common", "filesystem:sql/sql_regular");
  • 1 고객 : 는 flyway.setLocations("filesystem:sql/sql_common", "filesystem:sql/sql_customer1");
  • customer2 : flyway.setLocations("filesystem:sql/sql_common", "filesystem:sql/sql_customer2");

이 방법의 경우 당 1.0 버전과 정확히 1 마이그레이션있을 것입니다.

관련 문제