Flyway ist als Java DB-Migration bekannt, aber ich habe sie nicht berührt, deshalb habe ich sie in den Neujahrsferien eingeführt. Es wurde geschätzt, dass die Arbeit 3 Stunden dauern würde, aber in Wirklichkeit dauerte es ungefähr 15 Minuten.
Die einzigen Schritte, die zur Installation erforderlich sind, sind folgende: Einfach!
build.gradle
ext {
// Flyway
flywayVersion = "4.1.2" // 2017,0315 spätestens
}
dependencies {
// Flyway
compile ("org.flywaydb:flyway-core:$flywayVersion")
}
plugins {
id "org.flywaydb.flyway" version "4.1.2" // 2017,0315 spätestens
}
flyway {
user = '' //DB-Benutzername
url = ''//DB URL
}
Stellen Sie als Nächstes die SQL-Dateien bereit, z. B. die folgende CretateTable-Anweisung.
・ Src / main / resources / db / migration /
Es gibt eine Namenskonvention für die Dateinamen der zu implementierenden Dateien. Es scheint auch, dass Datenbank erstellen usw. nicht geschrieben werden kann
sql:V1.0__Initial_Setup.sql
CREATE TABLE IF NOT EXISTS ANSWER_INFO_TBL (
NO BIGINT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
TYPE TINYINT(1) NOT NULL,
ANSWERKEY VARCHAR(81) UNIQUE NOT NULL,
KEYHASH VARCHAR(64) UNIQUE NOT NULL ,
CREATE_DATE DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=INNODB DEFAULT CHARSET=UTF8;
CREATE TABLE IF NOT EXISTS SCORE_INFO_TBL (
NO BIGINT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
SCORE MEDIUMINT(7) UNSIGNED DEFAULT 0 NOT NULL,
NAME VARCHAR(64) DEFAULT '' NOT NULL,
MEMO VARCHAR(64) DEFAULT '' NOT NULL,
UPDATE_DATE DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (NO)
REFERENCES ANSWER_INFO_TBL(NO)
ON DELETE CASCADE
) ENGINE=INNODB DEFAULT CHARSET=UTF8;
ALTER TABLE ANSWER_INFO_TBL ADD INDEX INDEX_ANSWERKEY(ANSWERKEY ASC);
ALTER TABLE ANSWER_INFO_TBL ADD INDEX INDEX_KEYHASH(KEYHASH ASC);
Beim Starten einer App über IntelliJ IDEA wird die DB-Migration automatisch durchgeführt.
Während ich eine App erstelle, erstelle ich Mülldaten oder möchte die Datenbank zurücksetzen. Ich möchte jedoch saubere Daten behalten ... → Extrahieren Sie vorhandene Datensätze, die kein Problem haben, und fügen Sie sie nach dem Zurücksetzen der Datenbank automatisch ein → Bungal Lass es Flyway machen!
Wenn Sie Springboot nach dem Löschen der Tabelle unter den oben genannten Bedingungen starten, werden die Tabellenerstellung und die Datensatzerstellung automatisiert. Wenn Sie die Version von SQL-Dateien ordnungsgemäß verwalten, werden die Hürden für den Aufbau einer Umgebung geringer!
Ich konnte es reibungslos einführen, so dass ich Lust hatte, meinen Rücken zu drücken, was ich nur zögerlich eingeführt hatte. Da die Datenbank häufig zurückgesetzt wird, versuche ich, die Verwaltung der SQL-Datei nicht zu vernachlässigen. Darüber hinaus denke ich, dass es einige nützliche Funktionen gibt, die ich noch nicht gesehen habe, indem ich sie eingeführt habe. Deshalb werde ich sie hinzufügen, sobald sie entdeckt werden. Es scheint auch, dass es einen Artikel-Tag von Flyway gibt, also denke ich, dass Sie ihm folgen können.
Beim Wechsel vom Datumstyp zum LocalDate-Typ in JPA Entity Es scheint, dass Sie die folgenden Techniken verwenden müssen
WebApp.java
@SpringBootApplication
@Import(Domain.class)
@EntityScan(basePackageClasses = {WebApp.class, Jsr310JpaConverters.class})
@EnableScheduling
public class WebApp extends SpringBootServletInitializer {
public static void main(String[] args) {
new SpringApplicationBuilder(WebApp.class)
.profiles("dev")
.run(args);
}
}
Der Trick ist, dass Jsr310JpaConverters.class das Ziel von Entity Scan ist.
Recommended Posts