Voie de migration, migration de base de données à de multiples schémas
J'ai mis en place un script de migration pour mon application multi-locataires. le problème a été. c'est seulement de générer les scripts pour la première locataire/schéma que j'ai spécifié sur le paramètre. Voici mon script 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;
Voici la commande que j'ai entré pour la voie de migration mvn compile flyway:migrate -Dflyway.schemas=tenant3,tenant4,tenant5 -Dflyway.baselineOnMigrate=true
C'est seulement générer les tables pour la première locataire qui est tenant3.
Est-ce un bug? ou me Manque quelque chose?
Autant que je sache
schemas
propriété Vous permet de passer plus de schémas dans Votre SQL. Donc, ici, Vous devez le créer USER_ACCOUNT
table deux fois, avec 2 scripts, l'un par le schéma. Ici Vous pouvez lire que seul le 1er schéma est traité comme un nom par défaut: flywaydb.org/documentation/maven/migrate.html ... et donc Vous devez spécifier à chaque fois que Vous essayez de pousser la migration de non-schéma par défaut. J'aimerais pousser des migrations dans les deux schémas multiples à la fois trop. Un schéma pour le DÉVELOPPEMENT et l'une des fins de TEST. Toujours à la recherche de solution 😉OriginalL'auteur user962206 | 2014-12-18
Vous devez vous connecter pour publier un commentaire.
De créer de multiples identiques schémas de vous avoir à invoquer la voie de migration d'une fois pour chaque schéma, avec la voie de migration.les schémas de bien définir la valeur correcte. La voie de migration sera ensuite mis le schéma correct que celui par défaut, vous permettant d'exécuter vos scripts de migration inchangé (tant que vous n'avez pas le préfixe des noms d'objets).
cela crée le flyway_schema_history table dans chaque schéma - essentiellement le suivi de chaque schéma dans des tables séparées. est-ce exact?
Je dirais que les "schémas" paramètre a confusion de nom pour la migration. Parce que vous avez à construire manuellement une boucle et de fournir en boucle un nom de schéma pour un pluriel des "schémas". Si je comprends bien, dans le cas de Postgres vous venez de le faire "SET search_path=value_provided_for_schemas_setting;" Ainsi, dans le cas où si le script de migration est non-préfixés par le nom du schéma (ils doivent être dans le cas général), vous allez déployer dans le schéma spécifique Dans de tels cas, il est plus logique de l'appeler currently_deployed_schema ou similaire
OriginalL'auteur Axel Fontaine
Vous trouverez des recommandations de la voie de migration comme dans
http://flywaydb.org/documentation/faq.html#multiple-schemas
Espère que cette aide.
OriginalL'auteur dopeddude