Flyway命令行无法在文件系统上找到迁移

时间:2012-11-29 13:29:49

标签: flyway

我正在使用flyway命令行工具进行数据库迁移。如果我将SQL迁移放在 SQL 目录中,它可以正常工作。但是,如果我将Locations属性设置为文件系统上的路径,则会在没有任何警告或错误的情况下失败。

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

如何指定文件系统路径?我不想将我的迁移放在 SQL 目录中。

3 个答案:

答案 0 :(得分:0)

目前尚不支持:https://github.com/flyway/flyway/issues/108

作为一种解决方法,您可以将symlink / sql链接到要使用的目录。

答案 1 :(得分:0)

您应该使用字符串“filesystem:”将绝对路径作为“migration”目录的前缀,如下所示:

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

答案 2 :(得分:0)

感谢Axel,它正在开发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.