为Grails的Openshift配置DataSource.groovy

Hal*_*ley 4 grails environment-variables openshift

我正在尝试在Openshift上部署Grails应用程序.我正在使用本地构建的war文件部署应用程序.现在,我使用DataSource.groovy文件中的rhc-app-show命令给出的url作为我的数据库配置.每当我尝试使用Openshift的环境变量(例如$ OPENSHIFT_MYSQL_DB_HOST)时,它都会崩溃.有关如何在配置文件中使用它们的任何想法或指示?

谢谢.

Bur*_*ith 5

我还没有使用过OpenShift,但Google引导我查看显示这些环境变量的FAQ:

OPENSHIFT_MYSQL_DB_HOST
OPENSHIFT_MYSQL_DB_PASSWORD
OPENSHIFT_MYSQL_DB_USERNAME
OPENSHIFT_MYSQL_DB_URL
OPENSHIFT_MYSQL_DB_PORT
Run Code Online (Sandbox Code Playgroud)

所以看起来这样可行:

production {
   dataSource {
      driverClassName = 'com.mysql.jdbc.Driver'
      dialect = org.hibernate.dialect.MySQL5InnoDBDialect

      String host = System.getenv('OPENSHIFT_MYSQL_DB_HOST')
      String port = System.getenv('OPENSHIFT_MYSQL_DB_PORT')
      String dbName = System.getenv('OPENSHIFT_APP_NAME')
      url = "jdbc:mysql://$host:$port/$dbName"
      username = System.getenv('OPENSHIFT_MYSQL_DB_USERNAME')
      password = System.getenv('OPENSHIFT_MYSQL_DB_PASSWORD')

      properties {
         ...
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

丢失的位是数据库名称 - 这是你可以使用的东西吗?我不确定格式,OPENSHIFT_MYSQL_DB_URL但看起来你可能只能使用url = "jdbc:${System.getenv('OPENSHIFT_MYSQL_DB_URL')}"