具有多个环境的Grails外部配置(数据源)

时间:2013-03-13 16:11:36

标签: grails configuration external

在我的Config.groovy我放线:

grails.config.locations = [ "classpath:app-config.properties"]

我为数据源设置了定义。文件看起来像:

dataSource.url=jdbc:mysql://host/instance
dataSource.username=u
dataSource.password=p

并正确替换DataSource.groovy中的属性。

问题是它取代了每个环境的配置,但我需要为开发,测试和生产单独配置。试图将不同的条目存入文件,如:

environments.development.dataSource.url=jdbc:mysql://host/dev
...
environments.production.dataSource.url=jdbc:mysql://host/prod
...

DataSource.groovy中定义的默认数据源属性结束。如何使一个属性文件适用于不同的环境?

1 个答案:

答案 0 :(得分:8)

有几种可能的方法。这是一对夫妇:

  1. 将当前环境名称嵌入外部配置文件名:

    grails.config.locations = [ "classpath:app-${grails.util.Environment.current.name}-config.properties"]

    这将导致app-development-config.properties以开发模式加载,app-test-config.properties加入测试等等。

  2. 使用.groovy配置格式代替.properties。使用.groovy配置文件,您可以使用environment { ... }块。