在Grails中注入开发人员特定的设置

时间:2013-04-02 20:29:02

标签: grails configuration

现在我们在conf中为我们的grails应用程序提供了一个DataSource.groovy文件。它有这样的设置......

   development {
        dataSource {
            dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:mysql://localhost/mydb?useUnicode=yes&characterEncoding=UTF-8"
            username = "user"
            password = "password"
        }
    }

当不同的开发人员为他们的数据库拥有不同的主机/用户名/密码时,在不更改此文件的情况下更换每个开发人员设置以及尝试记住不检查对源代码管理的更改的好方法是什么?随着应用程序的增长,需要在不同开发人员的计算机上更改设置的数量。

1 个答案:

答案 0 :(得分:2)

我设置了我的开发环境,以查找包含用户名和密码的环境变量,这些变量由开发人员在运行grails run-app之前创建。

    development {
        dataSource {
          //dbCreate = "update" // one of 'create', 'create-drop','update'
            url = "jdbc:oracle:thin:@myserver:1521:SID"
            username = System.env.grails_user
            password = System.env.grails_password
            dialect = org.hibernate.dialect.OracleDialect
        }
    }

为了避免混淆,我在文件的开头添加了以下注释块(我们在Windows中开发)。

/***********************************************************************
 * The development and test environments expect to find the database
 * username and password in the following system environment variables.
 *
 *   grails_user
 *   grails_password
 *
 * Before trying grails run-app or grails test, be sure to set the
 * variables.  In Windows, you can type the following.
 *
 *   set grails_user=<your username>
 *   set grails_password=<your password>
 *   grails run-app
 *
 * The system will remember the password as long as you don't close the
 * cmd window.
 *
 **********************************************************************/

这有点令人讨厌,但是将密码从我们的源代码和修订控制系统中删除是值得的。