[JAVA] Eine Geschichte über die Einführung von Evolutions in das Play Framework

Betriebsumgebung

Was ist Evolution?

Evolustions ist ein Play Framework DB-Migrationstool. Sie können Ihr DB-Schema problemlos aktualisieren und für mehrere Entwickler freigeben.

Einführungshintergrund

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.

Wie man Evolutions benutzt

Evolutions-Setup

Fügen Sie "evolutions" zur Liste der abhängigen Bibliotheken in build.sbt hinzu

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
)

https://gyazo.com/c2fb3c3cd5e366c8b9e0e604334dfc26 Klicken Sie oben rechts auf Projekt aktualisieren

Überprüfen Sie die Einstellungen in application.conf

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"

Beschreibung des Evolutionsskripts

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
);

Informationen zum Dateinamen

Nennen Sie die Dateien 1.sql für das erste Skript, 2.sql für das zweite Skript und so weiter.

Über die Ausführung

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. https://gyazo.com/ad537b57cd684f733522cfe19addce03

Über Downs

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.

Verweise

Evolutions - 2.1.x Der Quellcode ist hier

Recommended Posts

Eine Geschichte über die Einführung von Evolutions in das Play Framework
Die Geschichte der Einführung eines sehr Rails-ähnlichen serverlosen Frameworks "Ruby on Jets" in die Produktionsumgebung
Eine Geschichte über das JDK in der Java 11-Ära
Eine Geschichte über das Erstellen eines Builders, der den Builder erbt
Hinweise zum Umfang
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Ein Murmeln über die Utility-Klasse
Eine Geschichte über die Schwierigkeit, ein Testframework an Java 6 auszurichten
Eine Geschichte über die Herstellung eines Taschenrechners zur Berechnung der Muschelhügelrate
Eine Geschichte über das Senden einer Pull-Anfrage an MinGW, um die libgr-Version zu aktualisieren
Erraten Sie das Java Persistence Framework 2017 (3) Reladomo
Informationen zur ersten Anzeige von Spring Framework
Eine Geschichte über einen Super-Anfänger, der zum ersten Mal am AtCoder-Wettbewerb teilnimmt (AtCoder-Anfängerwettbewerb 140)
Über den offiziellen Startleitfaden für Spring Framework
Eine Geschichte über die Java 11-Unterstützung für Webdienste
Die Geschichte der Einführung der Ajax-Kommunikation in Ruby
Die Geschichte des Versuchs, JAVA File zu bedienen
Einführung in Rspec, ein Testframework für Ruby on Rails
Ein Memo über den Fluss von Rails und Vue
Die Geschichte eines neuen Ingenieurs, der einen leidenschaftlichen Programmierer liest
[Jackson] Eine Geschichte über das Konvertieren des Rückgabewerts des Big Decimal-Typs mit einem benutzerdefinierten Serializer.