2014-12-18 2 views
4

Я установил сценарий миграции для моего многопользовательского приложения. проблема была. он генерирует только сценарии для первого арендатора/схемы, которые я указал в параметре. Вот мой сценарий SQLПеренос базы данных пролета в несколько схем

drop table if exists ADMIN_ACCOUNT cascade; 

drop table if exists PERSON_NAME cascade; 

drop table if exists USER_ACCOUNT cascade; 

create table ADMIN_ACCOUNT (
    id int8 not null, 
    created_date timestamp, 
    PASSWORD varchar(255), 
    USERNAME varchar(255), 
    membershipType varchar(255), 
    NAME_ID int8, 
    primary key (id) 
); 

create table PERSON_NAME (
    id int8 not null, 
    created_date timestamp, 
    FIRST_NAME varchar(255), 
    LAST_NAME varchar(255), 
    MIDDLE_NAME varchar(255), 
    account_id int8, 
    primary key (id) 
); 

create table USER_ACCOUNT (
    id int8 not null, 
    created_date timestamp, 
    PASSWORD varchar(255), 
    USERNAME varchar(255), 
    ROLE varchar(255), 
    TENANT_CODE varchar(255), 
    NAME_ID int8, 
    primary key (id) 
); 

alter table ADMIN_ACCOUNT 
add constraint FK_fil1krx8k0osj713tg44ia0vu 
foreign key (NAME_ID) 
references PERSON_NAME; 

alter table PERSON_NAME 
add constraint FK_hc1g7pa0rseytw9o1pcuo0mpw 
foreign key (account_id) 
references USER_ACCOUNT; 

alter table USER_ACCOUNT 
add constraint FK_ib2pk4at20vxm3onaoro6ry2r 
foreign key (NAME_ID) 
references PERSON_NAME; 

Вот команда, я вошел в пролетный mvn compile flyway:migrate -Dflyway.schemas=tenant3,tenant4,tenant5 -Dflyway.baselineOnMigrate=true

Это только генерации таблиц для первого жильца, который tenant3.

Это ошибка? или я что-то пропал?

+0

Свойство AFAIK 'schemas' позволяет вам переключаться между схемами в ваших операторах SQL. Таким образом, здесь вам нужно будет дважды создать таблицу USER_ACCOUNT, используя два отдельных сценария, по одному для каждой схемы. Здесь Вы можете прочитать, что только первая схема трактуется по умолчанию один: http://flywaydb.org/documentation/maven/migrate.html ... так Вы должны указать, когда Вы пытаетесь нажать миграцию нестандартная схема. Я хотел бы сразу же перенаправить миграции на две множественные схемы. Одна схема для РАЗРАБОТКИ и одна для целей ИСПЫТАНИЯ. Все еще ищут решение;) –

ответ

2

Чтобы создать несколько идентичных схем, вы должны вызывать Flyway один раз для каждой схемы, а свойство flyway.schemas задает правильное значение. Затем Flyway установит правильную схему как стандартную, позволяя запускать ваши сценарии миграции без изменений (если вы не префикс имен объектов).

Смежные вопросы