首页 > 解决方案 > 如何在 Flyway 迁移运行的插入语句中转义 Freemarker 模板?

问题描述

我有一个允许用户定义 Freemarker 模板的 Spring Boot 应用程序。我将其存储在我的数据库中。我想在 Flyway 中预加载一个作为迁移的一部分:

insert into templates(1001, '${foo.bar}');

当我把它放在我的迁移脚本中时,我收到一个关于它是一个无法识别的占位符的错误。

org.flywaydb.core.api.FlywayException: Unable to parse statement in /projects/so-example/src/main/resources/db/migration/V1__insert_initial_data.sql at line 1 col 1. 见https://flywaydb.org/文档/knownparserlimitations以获取更多信息:没有为占位符提供值:${foo.bar}。检查你的配置!

我知道如何禁用占位符 ( -Dflyway.placeholderReplacement=false),这似乎让我暂时摆脱了它。

但是,我想知道如何转义这个特定实例,以便可以在其他地方使用占位符。

谢谢!

标签: spring-bootfreemarkerflyway

解决方案


推荐阅读