我正在使用启用了 oracleSqlplus 的 Flyway Pro。我创建了一个文件夹结构来根据对象组织脚本。尝试在 Flyway 版本脚本中使用 @(带路径),但不起作用。
文件夹结构,
顶层文件夹
-文件夹A
-AScript.sql
-文件夹B
-BScript.sql
-文件夹公用
-AScript.sql
-V1__ASCRIPT.sql
-V2__BSCRIPT.sql
-V3__ASCRIPT.sql
内容:
V1__ASCRIPT.sql
@AScript.sql -> 正确执行topFolder/folderA/Ascript.sql
V2__BScript.sql
@BScript.sql -> 正确执行topFolder/folderB/Bscript.sql
V3__ASCRIPT.sql
@topFolder/folderCommon/AScript.sql -> 这引发了我下面的错误,
org.flywaydb.core.api.FlywayException:SP2-0310:无法打开文件“topFolder/folderCommon/AScript.sql”
我尝试了几乎所有可能的组合,
使用绝对路径,
与“@../../topFolder/folderCommon/AScript.sql”
尝试设置 SQLPATH 变量
与@@
这不起作用。
只需在 @ 中单独给出文件名即可。但我想指定路径,这样文件名可以重复使用,也不容易出错。
我希望相对路径应该与 Flyway + oraclesqlplus 选项一起使用。
提前致谢。
最佳答案
看起来你从fly flyway.locations=filesystem:
结束的点开始路径就是你的路径开始的地方。
示例:
flyway.locations=filesystem:/opt/app/sql
脚本所在位置/opt/app/sql/appadb/script.sql
里面的 masterscript 是
@@appadb/script.sql
关于java - 获取 FlywayException : SP2-0310: unable to open file - when sqlpus @ is used with file path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56071362/