如何在 Flyway DB 配置文件中指定多行属性值?

Posted

技术标签:

【中文标题】如何在 Flyway DB 配置文件中指定多行属性值?【英文标题】:How can I specify a multi-line property value in a Flyway DB configuration file? 【发布时间】:2014-11-10 15:01:16 【问题描述】:

我正在尝试将 PGP 加密密钥放入 Flyway DB 配置文件中。像这样的:

# Encryption key for encrypting stuff
flyway.placeholders.encryptionKey=-----BEGIN PGP PUBLIC KEY BLOCK-----  
Version: BCPG C# v1.2.3.4    

mQEGBFRgnDEBCACi4yRYnmLtgEBoXfx+YYwZ1b6xPRN5oZBqp76YGPwtVfNGOzpK
JKclFD1uIr/MIQZB89G2Z4gJB/q2E+CNbHUGc/bxU8DpGOOo3DsN2UP2xxz41sRY
7eW0SiSSIw2Cu+4dG3Ic+pBv8pxUFZDCyGCtENucfoxKe3J69IWNbBRCiftndW2A
Wf7vPyrygcD+9Ju/7OrLL7FnWJ66TZk6DUgjMm1c4J4ZoyHRfZHEvhx/j2OlxzIV
ysHXThyrVZzkO0sA0kobzJEfdpKhRg==
=SpNy
-----END PGP PUBLIC KEY BLOCK-----  

然后我在更新 SQL 脚本中使用该属性,例如

UPDATE [MyTable] SET [MyColumn] = '$encryptionKey'

当我运行更新时,它只是使用密钥的第一行进行更新。有没有办法在 Flyway 配置文件中指定多行属性?

【问题讨论】:

【参考方案1】:

必须在每一行的末尾添加 \n\,如下所示:

# Encryption key for encrypting stuff
flyway.placeholders.encryptionKey=-----BEGIN PGP PUBLIC KEY BLOCK-----  \n\
Version: BCPG C# v1.2.3.4    \n\
\n\
mQEGBFRgnDEBCACi4yRYnmLtgEBoXfx+YYwZ1b6xPRN5oZBqp76YGPwtVfNGOzpK\n\
JKclFD1uIr/MIQZB89G2Z4gJB/q2E+CNbHUGc/bxU8DpGOOo3DsN2UP2xxz41sRY\n\
7eW0SiSSIw2Cu+4dG3Ic+pBv8pxUFZDCyGCtENucfoxKe3J69IWNbBRCiftndW2A\n\
Wf7vPyrygcD+9Ju/7OrLL7FnWJ66TZk6DUgjMm1c4J4ZoyHRfZHEvhx/j2OlxzIV\n\
ysHXThyrVZzkO0sA0kobzJEfdpKhRg==\n\
=SpNy\n\
-----END PGP PUBLIC KEY BLOCK-----  

【讨论】:

以上是关于如何在 Flyway DB 配置文件中指定多行属性值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在属性文件中指定值,以便可以使用 ResourceBundle#getStringArray 检索它们?

如何在属性文件中指定值,以便可以使用 ResourceBundle#getStringArray 检索它们?

如何在 pom.xml 文件中指定 Java 编译器版本?

如何在 pom.xml 文件中指定 Java 编译器版本?

如何在 pom.xml 文件中指定 Java 编译器版本?

如何使用错误消息中指定的 tbspaceid tableid 在 DB2 中查找表和列