2017-05-17 4 views
1

Ich habe Probleme beim Festlegen der Position mit dem Klassenpfad in FLyway, wenn ich mit dem Dateisystem richtig arbeite.FlyWayDB - Standort Klassenpfad konnte nicht aufgelöst werden

Beispiel:

Diese Arbeits: this.setLocations("filesystem:C:\\Projects\\ProjectName\\src\\main\\java\\com\\some1\\some2\\some3\\database\\migration");

dies nicht funktioniert (ich delimiters versuchen: "" "\", "/"): this.setLocations("classpath:ProjectName/src/main/java/com/some1/some2/some3/database/migration");

Wenn er nicht arbeitet, seine werfen Fehler:

[WARNING] [] [org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner] [tid: _ThreadID=19 _ThreadName=RunLevelControllerThread-xx] [timeMillis: 1495044249009] [levelValue: 900] [[ Unable to resolve location classpath: ProjectName/src/main/java/com/some1/some2/some3/database/migration]]

ich versuche, wie oben einige Trennzeichen, ohne Schlüsselwort „classpath“, und immer, wenn ich will c verwenden Lasspath sein Werfen "Kann Standort nicht auflösen ...".

Ich benutze flyway ver 4.1.2 und durch JAVAAPI (https://flywaydb.org/getstarted/firststeps/api)

edit./ Als ich Standort der Migration von SQL-Dateien und den Namen des Verzeichnisses auf Standard für Flyway ändern, und nicht die Position einstellen, seine adaequat . Also, Schlussfolgerung ist, dass ich den Klassenpfad falsch geschrieben habe, aber was mache ich falsch?

Standardkonfiguration: 1. main/resources/db /Migration < Standardordner für SQL-Dateien zu migrieren 2. keine Standorteinstellung

Einige Vorschlag?

Antwort

0

'Klassenpfad' bedeutet wirklich Klassenpfad und Sie können Ihren Klassenpfad nicht mit einem Pfad erweitern.

Wenn ich Classpath Erklärung sehen, als ich denke, Ihre Migration wird mit dem Pfad ‚com/some1/some2/some3/database/migration

=> so Classpath Konfiguration aussehen muß in einem Glas verpackt werden:

classpath:com/some1/some2/some3/database/migration

Wenn Sie verwenden SQL-Datei basierte Migration Ich habe bessere Erfahrung mit src/main/resources als Basis-Speicherort.

+0

Ich versuche dies und ich schrieb, dass nicht funktioniert. Es besteht keine Notwendigkeit, das Schlüsselwort "classpath" zu deklarieren, denn wenn Sie nur path angeben, ohne irgendein Schlüsselwort (classpath, filesystem) im Standard, behandelt flyway seinen Klassenpfad. Folgen Sie der Dokumentation: "Nicht vordefinierte Standorte oder Standorte, die mit dem Klassenpfad beginnen". https://flywaydb.org/documentation/api/javadoc/org/flywaydb/core/Flyway.html#setLocations-java.lang.String...- – newOne

Verwandte Themen