将暂存环境添加到工作流程

Fel*_*ger 20 ruby ruby-on-rails heroku staging ruby-on-rails-3.2

我目前有两种工作环境:development本地和productionHeroku.

我想staging在Heroku 上添加一个环境,看看在将应用程序推送给用户之前,一切都按预期进行.优选地,staging环境应具有与环境完全相同的设置和数据production.

完成上述步骤需要哪些步骤?

ber*_*bic 35

首先是倾向,我喜欢将我的heroku git遥控器设置为舞台和制作,这样你就可以轻松地使用git push staging/production来部署到每一个.我将使用该设置来解释如何进行暂存环境.

  1. 创建一个config/environments/staging.rb你将复制`config/environments/production.rb'
  2. 为登台数据库添加一个database.yml条目(heroku不是真的需要但不能伤害)
  3. 备份.env文件(如果有的话)
  4. 安装heroku-config插件 heroku plugins:install git://github.com/ddollar/heroku-config.git
  5. 从heroku(生产服务器)中提取环境设置 heroku config:pull --remote production
  6. 更改.env文件,不要忘记将这些值添加到配置中:RACK_ENV=staging RAILS_ENV=staging因此它将使用登台环境配置.
  7. fork一个heroku环境heroku fork -a production staging(那些是你想要的heroku appnames而不是production/staging)
  8. 做一个`heroku config:push --remote staging'
  9. 请务必将代码部署到staging env中

您也可以阅读本教程,我想我用它来开始使用heroku上的多个环境:https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations

  • 您应该具有与生产环境相同的暂存环境,以查看应用程序在生产环境中的实际执行情况,并且能够让产品所有者在生产之前测试这些功能.TDD无法真正捕获的大多数问题都是例如你可以轻易跳过的css回归,或者总是咆哮的资产可能会破坏某些地方.简而言之,有一个staging env,应该是与生产一样的配置,你不必拥有相同的服务器野兽,只需确保堆栈完全相同,直到部署. (3认同)

jpw*_*ynn 8

我发现这heroku fork -a PRODUCTION_APP_NAME NEW_STAGE_APP_NAME是一种更快,更简单的方法...它创建了新应用程序,复制了所有内容(包括postgres数据库).然后我进入并在有意义的时候手动将插件降级为较小的计划(例如,入门级数据库).

实际上,我们开始使用相对较新的heroku pipeline:promote自动管理(并且非常快速地)将已编译的段塞从分段推送到生产.(假设您通过设置或环境变量进行任何特定于环境的设置,因此代码段落是相同的.)


And*_*rea 6

请注意,根据Heroku网站上的以下指南,不建议使用berislavbabic解释的程序:https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations

您可以在那里详细阅读,但建议保持暂存环境与生产环境相同,只需使用heroku fork从生产复制到暂存.