Evolustions est un outil de migration de base de données Play Framework. Vous pouvez facilement mettre à jour et partager votre schéma de base de données entre plusieurs développeurs.
Dans le développement local, plusieurs développeurs ont utilisé leurs bases de données respectives pour ajouter des colonnes et des tables. J'ai utilisé le même code source, mais le schéma de la base de données était différent, je devais donc le mettre à jour manuellement de temps en temps. Faire correspondre les schémas de base de données entre plusieurs développeurs est facile avec Evolutions.
build.sbt
name := """play-evolutions-sample"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.11.7"
libraryDependencies ++= Seq(
"mysql" % "mysql-connector-java" % "5.1.38",
javaJdbc,
cache,
javaWs,
evolutions
)
Cliquez sur Actualiser le projet en haut à droite
Il est commenté par défaut, mais assurez-vous qu'il n'est pas faux au cas où
application.conf
play.evolutions {
# You can disable evolutions for a specific datasource if necessary
#db.default.enabled = false
}
Ou écrivez explicitement db.default.enabled = true
Créer un annuaire
$ mkdir -p conf/evolutions/default
Créez et décrivez un fichier SQL qui modifie la base de données sous conf / evolutions / default
Il se compose de deux parties, Ups et Downs, et le contenu à décrire est le suivant.
# --- !Ups
Description de la méthode de conversion de schéma requise(Instruction SQL)
# --- !Downs
Description de la procédure d'annulation de la conversion ci-dessus(Instruction SQL)
Si vous souhaitez ajouter une nouvelle table factice
1.sql
# --- !Ups
create table dummy(
id integer not null,
name varchar(255),
created_at datetime not null,
updated_at datetime not null
);
# --- !Downs
drop table dummy
Si vous souhaitez ajouter une colonne à la table factice
2.sql
# --- !Ups
ALTER TABLE dummy ADD(
deleted_at datetime not null
);
# --- !Downs
ALTER TABLE dummy DROP(
deleted_at
);
Nommez les fichiers 1.sql pour le premier script, 2.sql pour le second script, et ainsi de suite.
Exécutez localement avec $ activator run
et passez à http: // localhost: 9000 /
ʻAppliquez ce script maintenant! `Appuyez sur le bouton pour exécuter le script d'évolution décrit
Les downs ne sont pas exécutés manuellement, ils sont exécutés lorsque le contenu d'Ups change. Downs est exécuté avant Ups et, par conséquent, le schéma de la base de données est mis à jour.
Evolutions - 2.1.x Le code source est ici
Recommended Posts