Ich benutze Flyway mit Gradle, ich habe eine der Migrationen manuell in der Datenbankkonsole ausgeführt, ich möchte flyway ausführen, aber sage, dass eine bestimmte Migrationsversion zwischen allen anderen ignoriert werden soll. Kann das gemacht werden?Wie überspringe ich eine bestimmte Migration mit der Flyway?
Antwort
Sie müssten es ein wenig hacken, um es zur Arbeit zu bringen, also empfehle ich diesen Ansatz nicht, aber es würde in Not arbeiten.
Ich habe das nur mit Maven getestet, aber ich bin mir ziemlich sicher, dass es auch mit Gradle funktionieren würde.
migrieren, bis die Version vor der einen nach oben angewendet, die Sie manuell
# Assuming you applied 01.002 manually $ mvn flyway:migrate -Dflyway.target=01.001
eine Zeile für das Skript Legen Sie
angewendet-- Make sure these vals closely replicate those from other rows insert into schema_version(installed_rank, version, description, type, script, checksum, installed_by, installed_on, execution_time, success) values (2, '01.002', 'static_data', 'SQL', 'V01/V01.002__static_data.sql', null, 'username', current_timestamp, 0, true);
Reparatur der
schema_version
Prüfsumme$ mvn flyway:repair
Bewerben
die anderen Migrationen
$ mvn flyway:migrate -Dflyway.validateOnMigrate=false -Dflyway.outOfOrder=true
Die beiden -D
Eigenschaften es nicht notwendig sein kann, je nachdem, ob Sie bekam die insert
richtig ist oder nicht. Flyway kann beispielsweise mit Ihrer Skriptbeschreibung nicht einverstanden sein, selbst wenn die Prüfsumme jetzt korrekt ist.
Nicht empfohlen Aber wenn Sie wollen immer noch:
1) Run flywayMigrate, lassen Sie die Migration fehlschlagen.
2) Aktualisieren Sie manuell die Flyway-Meta-Tabelle (Erfolgsspalte) für die jeweilige Version der Migration.
3) Führen Sie flywayMigrate erneut aus.
4) Fertig, der Flugweg beginnt jetzt mit der nächsten Version der Migration.
- 1. eine flyway fehlgeschlagenen Migration
- 2. Flyway auf der Produktionsdatenbank - Migration Checksum Mismatch
- 3. Flyway Maven init vor der Migration
- 4. Flyway: Skript nach der Migration ausführen
- 5. git difftool - Wie überspringe ich eine bestimmte Datei?
- 6. Wie überspringe ich einen Stecker für eine bestimmte Seite
- 7. Flyway DB migration - Wie man auf Anwendungsdienste zugreift (Spring configured)
- 8. Überspringe eine bestimmte Anzahl von Spalten mit numpy.genfromtxt()
- 9. Wie überspringe ich eine bestimmte Zahl, wenn ich über eine Bereichsfolgenummer iteriere?
- 10. Wie sortiert der Flyway Versionsnummern?
- 11. Zähle n Tage, überspringe bestimmte Daten
- 12. Wie überspringe ich die Funktion mit Lambdacode?
- 13. Wie überspringe ich Tests in PHPunit?
- 14. Flyway findet meine SQL - Migrationen in db/migration nicht
- 15. Wie man javabasierte Migrationen von Flyway erstellt
- 16. Verwendung der wiederholbaren Migration in Flyway, ohne doppelte Einfügedaten in der Tabelle möglich?
- 17. Überspringe bestimmte Felder beim Parsen eines Dokuments mit RapidJSON
- 18. Flyway false failure
- 19. Wie überspringe bestimmte Zeile von Text-Datei in Java?
- 20. Wie ignoriert man Platzhalterausdrücke für Flyway?
- 21. Wie überspringe ich eine Iteration in FOR Schleife in
- 22. Wie überspringe ich eine Revision im SVN-Repository
- 23. Wie bekomme ich eine Migration, um die Migration erneut zu starten?
- 24. Wie überspringe ich ein Verzeichnis in awk?
- 25. Wie überspringe ich eine Iteration einer foreach-Schleife?
- 26. Wie überspringe ich einen Filter in der Filterkette in Java
- 27. Wie überspringe ich eine leere Zelle in einer Spalte?
- 28. Wie überspringe ich einen Codeceptionstest cest
- 29. Wie überspringe ich einen BOOST Unit Test?
- 30. Wie kann ich eine Migration mit Django Migrationsbefehl überspringen?
dieser Ansatz funktioniert für mich. – hidekuro
Irgendwann ist es nicht mehr erforderlich, ein präpariertes 'insert' einzufügen (zum Beispiel, wenn das Upgrade-Skript beim Hinzufügen einer vorhandenen Spalte oder beim Löschen einer bereits entfernten Tabelle fehlgeschlagen ist). Lassen Sie Flyway einfach scheitern und korrigieren Sie die letzte Zeile, indem Sie 'success = 1' setzen. Sie können am Anfang des Aktualisierungsskripts einen sicheren Fehler mit Müll machen (der weitere möglicherweise gefährliche Aktionen verhindert). Entfernen Sie einfach Müll vor 'flyway: repair' – gavenkoa