我在 AWS Elastic Beanstalk 中运行 grails 应用程序;我通过命令行参数传递数据库身份验证凭据并通过 System.getProperty() 检索它们。在 grails 2.3.x 的 DataSource.groovy 中,以下工作:
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
driverClassName = "org.postgresql.Driver"
dialect = "net.kaleidos.hibernate.PostgresqlExtensionsDialect"
url = System.getProperty("JDBC_CONNECTION_STRING")
username = System.getProperty("PARAM1")
password = System.getProperty("PARAM2")
}
}
}
在 grails 2.4.x 中,当 PostgreSQL 驱动程序评估字段 url、用户名和密码时,返回默认值而不是评估 System.getProperty() 方法的结果。使用 as String 进行显式强制转换似乎可以解决这种情况。
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
driverClassName = "org.postgresql.Driver"
dialect = "net.kaleidos.hibernate.PostgresqlExtensionsDialect"
url = System.getProperty("JDBC_CONNECTION_STRING") as String
username = System.getProperty("PARAM1") as String
password = System.getProperty("PARAM2") as String
}
}
}