【问题标题】:How to pass placeholder in flyway for Insert statements?如何在 Flyway 中为 Insert 语句传递占位符?
【发布时间】:2013-03-05 04:59:44
【问题描述】:

我试图在执行 Flyway 时传递一个占位符值。

在调用 flyway.migrate 之前,我将添加占位符,如下所示:

String location="C:\resource";
flyway.getPlaceholders().put("resource_location",
            location);

脚本包含如下插入语句:

INSERT [dbo].[resource] ([settings_id], 
[prop_key], [prop_value]) 
VALUES (1, N'resource.path', $(resource_location)/test);

但这不起作用。请告诉我如何将占位符的值传递给上述插入脚本。

【问题讨论】:

  • 我相信你应该使用C:\\resource 而不是C:\resource
  • 是的...我刚刚将资源路径指定为常量。相反,这将从服务器启动时获取。但问题在于我传递占位符的方式。我收到以下异常:由 com.microsoft.sqlserver.jdbc.SQLServerException 引起:'(' 附近的语法不正确。

标签: java flyway


【解决方案1】:

the docs 中所述,默认的前缀和后缀是${ 和}。

您可以将占位符更改为 ${resource_location} 或重新配置默认值。

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 2012-03-14
    • 2012-12-14
    • 2011-11-27
    • 1970-01-01
    • 2021-07-17
    • 2023-04-04
    • 2018-08-16
    • 2023-03-25
    相关资源
    最近更新 更多