2016-05-16 122 views
0

我使用Heroku的,当我显示配置瓦尔的Heroku(键upcase/downcase出现两次)正确使用费加罗的:

=== someapp-staging Config Vars 
DATABASE_URL:       xxx 
LANG:         en_US.UTF-8 
NEW_RELIC_LICENSE_KEY:     xxx 
NEW_RELIC_LOG:       stdout 
RACK_ENV:        staging 
RAILS_ENV:        staging 
SENDGRID_PASSWORD:      123456 
SENDGRID_USERNAME:      [email protected] 
WEBSOLR_URL:       https://index.websolr.com/solr/0e1122334455 
sendgrid_password:      654321 
sendgrid_username:      [email protected] 
websolr_url:       https://index.websolr.com/solr/0e1122334455 

...一些定义不止一次。

Heroku的建议是使用大写键设置所有变量。 从https://devcenter.heroku.com/articles/add-ons

别名必须始终遵循相同的命名约定配置vars.They必须以字母开头,且只能包含大写字母数字字符或下划线。

所以......当我们执行figaro heroku:set --remote staging -e staging例如,为什么费加罗不会自动设置的加密密钥为大写?

接下来要做什么? 我必须与像混合键设置在瓦尔application.yml

staging: 
    <<: *default 
    app_name: 'someapp (staging)' 
    SENDGRID_USERNAME: [email protected] 
    SENDGRID_PASSWORD: 123456 
    WEBSOLR_URL: 'https://index.websolr.com/solr/0e1122334455' 
    geocoder_api_key: 'azertyuiop123456789' 
    airbrake_project_id: "987654" 
    airbrake_project_key: 'a123456z789456123' 

谢谢


PS:这些都不是我真正的凭据。


更新(从laserlemon答案)

https://github.com/laserlemon/figaro/issues/238

你应该写你的application.yml您 应用程序将使用确切的情况。尽管Heroku暗示了某种约定,但并不能保证每个人都能(或可以)一致地全面使用该约定 。出于这个原因,费加罗不会 自动加,减或其他。希望是有道理的!

+0

我假设这些都不是你真正的密钥和密码。 – Emanuel

回答

0

最佳答案从Heroku的:

配置的行为,在这种情况下瓦尔是由于底层 Linux操作系统是区分大小写的。 “幕后花絮” 配置变量只是一种管理Unix环境变量的方法,在dynos上设置为 ,因此我们对这些变量的处理相当简单,只需要 就可以保证它们与任何其他基于Linux的主机保持一致 - 如果我们使用 开始自动调整情况,你可能会发现 的情况,它在本地不起作用,而在Heroku上做。