将暂存环境添加到工作流程
我目前有两个工作环境:本地development
和Heroku production
。
我想在Heroku上添加一个staging
环境,以便在将应用程序推送给用户之前看到一切都按预期进行。 优选地, staging
环境应具有与production
环境完全相同的设置和数据。
完成上述步骤需要哪些步骤?
首先是倾向,我喜欢将我的heroku git遥控器设置为舞台和制作,这样你就可以轻松地使用git push staging / production来部署到每一个。 我将使用该设置来解释如何进行暂存环境。
- 创建一个
config/environments/staging.rb
,你将复制`config / environments / production.rb’ - 为登台数据库添加一个database.yml条目(heroku不是真的需要但不能伤害)
- 备份.env文件(如果有的话)
- 通过
heroku plugins:install git://github.com/ddollar/heroku-config.git
安装heroku-config插件heroku plugins:install git://github.com/ddollar/heroku-config.git
- 使用
heroku config:pull --remote production
从heroku(生产服务器)中提取环境设置heroku config:pull --remote production
- 更改.env文件,不要忘记将这些值添加到配置中:
RACK_ENV=staging RAILS_ENV=staging
这样它将使用登台环境配置。 - 使用
heroku fork -a production staging
(这些是你想要的heroku appnames而不是production / staging)来分叉heroku环境 - 做一个`heroku config:push –remote staging’
- 务必将代码部署到staging env中
您也可以阅读本教程,我想我用它来开始使用heroku上的多个环境: https ://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations
我发现heroku fork -a PRODUCTION_APP_NAME NEW_STAGE_APP_NAME
是一种更快,更简单的方法…它创建了新应用,复制了所有内容(包括postgres数据库)。 然后我进入并在有意义的时候手动将插件降级为较小的计划(例如,入门级数据库)。
事实上,我们开始使用相对较新的heroku pipeline:promote
自动管理(并且非常快速地)将已编译的slug从分段推送到生产。 (假设您通过设置或环境变量进行任何特定于环境的设置,因此代码段落是相同的。)
请注意,根据Heroku网站上的以下指南,不建议使用berislavbabic解释的程序: https ://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations
您可以在那里详细阅读,但建议将暂存环境与生产环境保持一致,只需使用heroku fork从生产复制到暂存。