2012-11-29 59 views
5

我正在使用flyway命令行工具進行數據庫遷移。如果我把SQL遷移到SQL目錄中,它工作正常。但是,如果將位置屬性設置爲文件系統上的路徑,則會失敗,不會有任何警告或錯誤。Flyway命令行無法找到文件系統上的遷移

爲如:flyway.locations=/file-path/

如何指定的文件系統路徑?我不想把我的遷移放在SQL目錄中。

回答

0

這是目前還不支持:https://github.com/flyway/flyway/issues/108

作爲一種變通方法,你可以建立/ SQL您要使用的目錄。

+0

感謝您的快速回復。 flyway ant插件是否支持不同位置的多個模式,以便爲每個模式遷移?我知道flyway一般,但螞蟻插件似乎並沒有這樣做。 –

+0

使用一條航線:爲每條航線遷移呼叫。另請參閱:http://flywaydb.org/documentation/faq.html#multiple-schemas –

+0

我試圖做到這一點,但第二條航線:migrate調用似乎使用先前遷移架構的schema_version表。如何使它們使用單​​獨的schema_version表? –

0

你應該前綴的絕對路徑與字符串的「遷移」目錄下的「文件系統」,像這樣:

String path = "/my/project/sql/migrate/"; 
migrateRelease("filesystem:" + path); 
flyway.setLocations(location); 
flyway.migrate(); 
0

由於阿克塞爾,它正在3.2.1版本。唯一需要注意的是遷移文件上的版本號應該超過schema_version表上的版本號。否則,運行migrate命令後可能會得到以下結果;

Flyway 3.2.1 by Boxfuse 

Database: jdbc:mysql://... 
Validated 1 migration (execution time 00:00.009s) 
Current version of schema `ref_db`: 1 
Schema `ref_db` is up to date. No migration necessary.