Ich versuche, Flyway in meinem Ant-Projekt zu verwenden, um DDL-Skripts auszuführen. Ich habe es geschafft, den Klassenpfad so zu konfigurieren, dass Flyway die Migrationsskripte sieht. Als ich den Zugweg ausführen: Aufgabe migrieren, bekomme ich diese Ausnahme:Flyway Ant versucht, .sql-Datei als Zip zu öffnen, schlägt mit ZipException fehl
Unable to obtain resource from (...)/src/ddl/V1__create_tables_logging.sql: java.util.zip.ZipException: error in opening zip file
[flyway:migrate] Unable to obtain resource from (...)/src/ddl/V1__create_tables_logging.sql:
[flyway:migrate] java.util.zip.ZipException: error in opening zip file
Es gibt einen Vorschlag am Ende:
[flyway:migrate] Possible solution: run the Ant javac and copy tasks first so Flyway can find the migrations
Aber mein Projekt ist nicht eine Java-Anwendung, habe ich keine Java-Quellen mit javac kompiliert werden. Muss Flyway die Migrationsskripten in ein Glas verpacken lassen? Können nicht einfach einige Textdateien mit SQL-Anweisungen ausgeführt werden?
Die Dokumentation ist irreführend, es heißt, dass die Migrationen auf dem Klassenpfad sein sollten, aber das funktioniert nur, wenn Sie sie zuvor in jars kompilieren. Was für mich funktionierte, ist die Eigenschaft flyway.locations zu verwenden und den Pfad mit "filesystem:" voranzutreiben, wie eines der Beispiele in der Dokumentation zeigt. – lukfi