5

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

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

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

4

3 回答 3

0

您应该使用字符串“文件系统:”作为“迁移”目录的绝对路径的前缀,如下所示:

String path = "/my/project/sql/migrate/";
migrateRelease("filesystem:" + path);
flyway.setLocations(location);
flyway.migrate();
于 2014-01-30T06:19:29.763 回答
0

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

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

于 2012-11-29T14:11:11.293 回答
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.
于 2015-08-28T17:27:07.387 回答