我曾经参与过多个铁路项目,但他们一直在我自己完成的一个项目中,只有少数我已部署到像heroku这样的东西并且经常使用。我刚刚与其他一些开发人员开始了一个项目,而且我并不完全熟悉这种类型的环境。特别是,处理我的本地环境的变化,并保持其他开发人员'环境同步。
例如,我刚刚为ActionMailer添加了配置,以使用我们的sendgrid帐户并将值作为环境变量放在我的系统上。当其中一个开发人员从源代码控制中提取我的更改时,他们就不会拥有这些环境变量。所以,我必须手动发送一些东西告诉他们要添加什么。
我的问题是,处理这样的事情的标准是什么?我会用耙子想象一下吗?有没有办法自动化它,以便在完成拉动时自动进行更改?
答案 0 :(得分:1)
您可以在配置文件中添加不同环境的配置,并在您的环境中使用它们。
//例如:
common: &common
http_auth:
username:
password:
development
<<: *common
test:
<<: *common
staging:
<<: *common
production:
<<: *common
您可以使用AppConfig.http_auth [“username”],AppConfig.http_auth [“password”]
在您的应用程序中使用这些已定义的变量如果你部署到heroku,你可以指定可以在heroku上设置的ENV变量,并按如下方式访问:
config.action_mailer.smtp_settings = {
:address => smtp.sendgrid.net,
:port => ENV['SENDGRID_PORT'],
:authentication => :plain,
:user_name => ENV['SENDGRID_USER_NAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => AppConfig.preferred_host
}