2017-07-27 1 views
0

Ich möchte nach einem Deployment-Fehler in meiner Datenbank bereitstellen können, da es sich in meinem Fall um gleichzeitige und unabhängige Deployments handelt. Mit dem Befehl "flyway clean" können fehlgeschlagene Migrationen in der Migrationstabelle entfernt werden. Die Verwendung dieses Befehls hilft, wenn meine zukünftigen Bereitstellungen ausgeführt werden, aber der Nachteil ist, dass ich den Verlauf fehlgeschlagener Bereitstellungen verliere.flyway - teilen Sie flyway mit, um die Migrationstabelle zu reparieren ABER den Verlauf der fehlgeschlagenen Implementierungen zu behalten

Gibt es eine Möglichkeit zu sagen, dass flyway die Migrationstabelle reparieren und den Verlauf der fehlgeschlagenen Bereitstellungen beibehalten soll - sagen Sie zum Beispiel das Erfolgsflag auf '2'.

In meinem Fall sind alle Implementierungen unabhängig, daher erstellen wir zum Zeitpunkt der Bereitstellung eindeutige Migrationsnummern. Dadurch können wir alles ohne Berücksichtigung des Status von flyway erneut bereitstellen (wir verwenden nur den mit flyway bereitgestellten Automatisierungsmechanismus und haben andere Migrationen deaktiviert). Sicherheitsvorkehrungen).

Antwort

1

Dies wird nativ nicht unterstützt. Ich stimme zu, dass das Entfernen des Verlaufs fehlgeschlagener Migrationen als Option hilfreich wäre.

Verwendung der callbacks kann Ihnen eine Problemumgehung geben. Insbesondere könnten Sie eine Kopie fehlgeschlagener Migrationen im beforeRepair-Callback erstellen. Wenn Sie SQL-Dateien verwenden, erstellen Sie eine beforeRepair.sql (oder was auch immer Sie für Ihr Migrationssuffix haben).

+0

Gut entdeckt. IMO das ist eine akzeptable Problemumgehung, bis es eine native Unterstützung dafür gibt. – NicolasW