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