我正在尝试使用grails邮件插件,但我有下一个问题,我在heroku中有一个使用git部署的应用程序,应用程序也在github,当我阅读mail plugin setting我发现它可以使用gmail设置,它适合我的场景。
问题是,为了使用我需要使用我的gmail凭据的插件,我可以外化配置并使用gitignore文件和此修复程序在github中显示凭据但另一方面我需要将应用程序部署到heroku并需要凭证
我希望我能解释自己,如果没有,可以随意编辑它以找到答案。谢谢你的时间
答案 0 :(得分:3)
一般来说,这类事情should be set on Heroku using environment variables。
例如,你可以在Heroku上set an environment variables GMAIL_USERNAME
和GMAIL_PASSWORD
这样:
heroku config:set GMAIL_USERNAME=me@gmail.com
heroku config:set GMAIL_PASSWORD=someth1ngS3cret
然后将这些环境变量读入您的应用程序。我不是Grails用户,但在Python Django应用程序中,我可能会在settings.py
文件中使用这样的代码:
GMAIL_USERNAME = os.getenv('GMAIL_USERNAME', 'default-username')
GMAIL_PASSWORD = os.getenv('GMAIL_PASSWORD', 'default-password')
现在,您可以通过设置这两个环境变量,将Gmail凭据设置为开发中的任何内容(以及其他开发人员也可以)。部署到Heroku时,代码可以使用变量,因此您可以将生产值放在那里。
这些变量也可以通过Heroku的网络界面设置。
修改强>
可以通过System.env.VARIABLE_NAME
:
通过将
production
中的grails-app/conf/DataSource.groovy
数据库配置更改为此来配置您的应用以使用此数据库:production { dataSource { dbCreate = "update" driverClassName = "org.postgresql.Driver" dialect = org.hibernate.dialect.PostgreSQLDialect uri = new URI(System.env.DATABASE_URL?:"postgres://test:test@localhost/test") url = "jdbc:postgresql://"+uri.host+uri.path username = uri.userInfo.split(":")[0] password = uri.userInfo.split(":")[1] } }