/ / Flyway - db ablegen, db - Migration erstellen, flyway

Flyway - Drop Db, erstellen Db - Migration, Flyway

Ich habe 2 Dateien: Db-Struktur und Db-Daten-SQL-Dateien. (Wir sind noch nicht Teil eines Projekts, in dem wir noch Änderungsdateien erstellen).

Gibt es eine Möglichkeit, diese Dateien vor dem Erstellen jedes Mal auszuführen, wenn einer von ihnen mit maven geändert wurde?

Die einzige Idee, die ich habe, ist, die Dateien nach jeder Änderung an ihnen umzubenennen (die Version hochzuladen), um sicherzustellen, dass flyaway sie abholt.

Gibt es einen intelligenteren Weg, vielleicht mit API oder einem anderen "Trick"?

Vielen Dank

- MB

Antworten:

6 für die Antwort № 1

Sie können die Flyway-Migration mit der folgenden Konfiguration verwenden

validationMode=ALL
validationErrorMode=CLEAN

Für jede SQL-Migration gilt eine CRC32-Prüfsummeberechnet, wenn das SQL-Skript ausgeführt wird. Der Validierungsmechanismus prüft, ob die SQL-Migrationen im Klassenpfad immer noch dieselbe Prüfsumme aufweisen wie die bereits in der Datenbank ausgeführte SQL-Migration.

validationErrorMode = CLEAN ist ausschließlich vorgesehenals Komfort für die Entwicklung. Selbst wenn es schwierig ist, empfehlen wir dringend, Migrationsskripts nicht zu ändern, sobald sie in SCM eingecheckt und ausgeführt wurden. Dies ermöglicht eine reibungslose Behandlung dieses Falls. Die Datenbank wird automatisch gelöscht, um sicherzustellen, dass Sie bei der nächsten Migration wieder in den in SCM eingecheckten Status versetzt werden.

Diese Konfiguration kann über die API verwendet werden. Maven Plugin oder Befehlszeile.


0 für die Antwort № 2

Mit neuerer Flyway würdest du verwenden

flyway.setInitOnMigrate(true);
flyway.setCleanOnValidationError(true);
flyway.setValidateOnMigrate(true);

Alles löschen, wenn sich die Prüfsumme der Datei ändert oder die Versionstabelle fehlt