1

我在 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
    }
}
}
4

0 回答 0