Evolustions ist ein Play Framework DB-Migrationstool. Sie können Ihr DB-Schema problemlos aktualisieren und für mehrere Entwickler freigeben.
In der lokalen Entwicklung verwendeten mehrere Entwickler ihre jeweiligen DBs, um Spalten und Tabellen hinzuzufügen. Ich habe denselben Quellcode verwendet, aber das DB-Schema war anders, sodass ich es von Zeit zu Zeit manuell aktualisieren musste. Das Abgleichen von DB-Schemas über mehrere Entwickler hinweg ist mit Evolutions einfach.
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
)
Klicken Sie oben rechts auf Projekt aktualisieren
Es ist standardmäßig auskommentiert, aber stellen Sie sicher, dass es nicht nur für den Fall falsch ist
application.conf
play.evolutions {
# You can disable evolutions for a specific datasource if necessary
#db.default.enabled = false
}
Oder schreiben Sie explizit "db.default.enabled = true"
Erstellen Sie ein Verzeichnis
$ mkdir -p conf/evolutions/default
Erstellen und beschreiben Sie eine SQL-Datei, die die Datenbank unter "conf / evolutions / default" ändert
Es besteht aus zwei Teilen, Höhen und Tiefen, und die zu beschreibenden Inhalte sind wie folgt.
# --- !Ups
Beschreibung der erforderlichen Schemakonvertierungsmethode(SQL-Anweisung)
# --- !Downs
Beschreibung, wie die obige Konvertierung rückgängig gemacht wird(SQL-Anweisung)
Wenn Sie eine neue Dummy-Tabelle hinzufügen möchten
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
Wenn Sie der Dummy-Tabelle eine Spalte hinzufügen möchten
2.sql
# --- !Ups
ALTER TABLE dummy ADD(
deleted_at datetime not null
);
# --- !Downs
ALTER TABLE dummy DROP(
deleted_at
);
Nennen Sie die Dateien 1.sql für das erste Skript, 2.sql für das zweite Skript und so weiter.
Führen Sie lokal mit "$ activator run" aus und springen Sie zu "http: // localhost: 9000 /" Durch Drücken der Schaltfläche "Dieses Skript jetzt anwenden!" Wird das beschriebene Evolution-Skript ausgeführt.
Downs werden nicht manuell ausgeführt, sondern ausgeführt, wenn der Inhalt von Ups geändert wird. Downs wird ausgeführt, bevor Ups ausgeführt werden, und als Ergebnis wird das Schema der Datenbank aktualisiert.
Evolutions - 2.1.x Der Quellcode ist hier
Recommended Posts