【问题标题】:Generate sql statements with flyway placeholders使用 flyway 占位符生成 sql 语句
【发布时间】:2020-12-13 04:45:59
【问题描述】:

我试图将一些 sql 插入语句保存到文件中以用于测试。 我想为此使用flyway placeholders,但我找不到。

Java 中的一些示例:

var sqlTXT = sql.insertInto(table("TBLNAME"))
     .set(field("strCol"), field("strVal").toString())
     .set(field("placeHolderCol"), field(inline("${flyway:user}")))
     .getSQL(ParamType.INLINED);

这将产生如下 SQL 字符串:

insert into TBLNAME (strCol, placeHolderCol) values ('strVal', '${flyway:user}')

我正在寻找这样的东西

insert into TBLNAME (strCol, placeHolderCol) values ('strVal', ${flyway:user})

所以flyway可以替换${flyway:user}并插入用户名。

有没有办法像这样渲染 sql 还是我必须“手动”完成?

【问题讨论】:

    标签: java jooq flyway property-placeholder


    【解决方案1】:

    Flyway 的占位符与任何其他“供应商特定”SQL 语法没有什么不同,jOOQ 不支持开箱即用,因此plain SQL templating 有答案。

    随便用

    field("${flyway:user}")
    

    不要使用DSL.inline(),它用于创建"inline values"(例如字符串文字)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2014-06-08
      • 2013-06-26
      • 2018-08-16
      • 2013-03-05
      • 1970-01-01
      • 2020-12-06
      • 2023-03-20
      相关资源
      最近更新 更多