Rails3&Git&Heroku-开发/暂存服务器

4
我正在与一个团队一起使用Git/Github开发一个Rails 3应用程序,并部署到Heroku cedar堆栈。我们的Github存储库有两个主要分支Master和Development。
我想将我们的Development分支定期推送到Heroku上的另一个应用程序作为开发/演示环境。在不影响我们的Git流程太多的情况下,有没有最简洁、最干净的方法将我们的Development分支推送到与Master不同的应用程序中?
非常感谢!
3个回答

7

您需要添加第二个Git远程仓库,即您的第二个应用程序的Heroku Git存储库URL,以便能够从单个代码库中推送到该存储库。

目前,您可能拥有名为“heroku”的默认远程源,它正在推送到您的生产应用程序。

您需要添加第二个远程源,指向您打算用于暂存的新Heroku应用程序,例如:

git remote add staging <git repo url from 'my apps' page on heroku>

一旦你设置了新的git origin,你可以通过以下方式推送:

git push staging <branch to deploy>:master

好的,很酷,我现在喜欢这个路线。我添加了第二个应用程序并将其推送到线上。现在我的唯一问题是,为了非常小心,当我从命令行运行 heroku <anything> 时,我如何知道我正在与哪个应用程序交互?比如,如果我想要运行 heroku run rake db:seed,它如何/为什么知道我正在与哪个应用程序交互?非常感谢。 - tuddy
1
将其明确地传递给命令,例如 heroku run rake db:seed --app <heroku 应用名称>。请注意,这是在 Heroku 的“我的应用程序”中显示的应用程序名称,而不是远程源名称。 - John Beynon
这是我以前写的一篇关于这个主题的博客文章 - http://john.beynon.org.uk/developing-with-multiple-environments-on-hero - John Beynon
如果您不想每次都指定 --app,可以运行 git config heroku.remote <remote_name_here>,之后,当您在没有指定 --app 的情况下运行 heroku 命令时,heroku 将默认使用您指定的任何远程,直到您将其切换到其他远程。 - B Robster

1

很简单。 Heroku 总是使用主分支,但使用 Git 可以允许您将/您的/开发分支推送到/他们的/主分支。

例如:

git push heroku development:master

其中heroku是您的Heroku开发环境的源,development是您的本地开发分支。如果您不希望您的dev分支在生产模式下运行,您可能还想在Heroku上覆盖RACK_ENV变量(尽管个人建议在代码中创建一个缓存等级的staging环境,但不要将电子邮件发送到生产地址等)。


你可以通过在 config/environments/production.rb 中设置特定的配置选项来实现类似的配置,然后针对不同的暂存/生产应用程序以不同的方式设置 Heroku 配置变量。 - yfeldblum

0

heroku_san 是一个 Gem 工具,它允许在使用 Heroku 时进行复杂的部署配置,而无需不断地在命令行上指定要推送到哪个 Heroku 应用程序。它可以让您完全按照您上面所描述的方式操作。


我计划在不久的将来使用它,或者至少去了解一下。它看起来相当不错。谢谢。 - tuddy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接