因此,由于某些要求而升级我的 Flyway 版本后,我了解到 Flyway-core-2.2 引入了对 Flyway 占位符的一些验证。
现在,占位符语法的约定在大多数库中都是统一的 ${name} 。在我们的迁移脚本中,我们在名为stretchySql的mysql表列中插入一个字符串,该字符串包含我们自己的一些占位符元素,这些元素将在运行时由应用程序层解释。
UPDATE `stretchy_parameter` SET `parameter_sql`='select r.id as report_id from stretchy_report r where r.report_category = \'${reportCategory}\'
我不希望 Flyway 将字符串中嵌入的内容解释为自己的占位符并抛出错误。那么基本上,是否有某种方法可以关闭 Flyway 占位符验证(因为我们不使用它)而不恢复到旧版本?
从 Flyway 3.2.1 开始(不确定何时引入),有一个新的布尔设置称为flyway.placeholderReplacement
,默认为 true,您可以使用它来有效禁用该功能。在 API 上,可以通过以下方式访问setPlaceholderReplacement(value) http://flywaydb.org/documentation/api/javadoc/org/flywaydb/core/Flyway.html#setPlaceholderReplacement-boolean- and isPlaceholderReplacement() http://flywaydb.org/documentation/api/javadoc/org/flywaydb/core/Flyway.html#isPlaceholderReplacement--的方法Flyway
object.
我知道 2.2 可能没有这个选项,并且接受的答案可能是解决它的最佳方法,但我认为这个替代方案对于遇到此页面的较新版本的用户可能有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)