【问题标题】:Getting FlywayException: SP2-0310: unable to open file - when sqlpus @ is used with file path获取 FlywayException:SP2-0310:无法打开文件 - 当 sqlpus @ 与文件路径一起使用时
【发布时间】:2019-09-27 23:52:34
【问题描述】:

我正在使用启用了 oracleSqlplus 的 flyway pro。我创建了一个文件夹结构来根据对象组织脚本。尝试在 flyway 版本脚本中使用 @(带路径),但不起作用。

文件夹结构,
topFolder -folderA -AScript.sql -folderB -BScript.sql -folderCommon -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 选项一起使用。

提前致谢。

【问题讨论】:

  • 请在 Flyway 问题跟踪器中使用您的确切文件夹结构和 Flyway 配置打开一个问题,以便我们进一步讨论。
  • 谢谢 Axel,一定会的。

标签: java oracle sqlplus flyway


【解决方案1】:

看起来您从 fly flyway.locations=filesystem: 结束点开始路径是您的路径开始的地方。
示例:

flyway.locations=filesystem:/opt/app/sql

你的脚本在哪里/opt/app/sql/appadb/script.sql

里面的masterscript会是 @@appadb/script.sql

【讨论】:

    猜你喜欢
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多