重新部署Heroku应用,无需更改代码


81

我想部署一个Heroku应用,最好使用来完成git push -u heroku master。但是,这仅在有任何待提交的提交要推送到主服务器时才有效。

在没有任何推送的情况下,我该如何重新部署该应用程序?我尝试过git push -u heroku master -f并且仍然在下面得到相同的结果

Branch master set up to track remote branch master from heroku.
Everything up-to-date

PS:我也想保留现有的应用程序,这意味着我无法利用此答案https://stackoverflow.com/a/22043184/968442


3
这听起来像XY问题。您希望通过重新部署相同的代码来实现什么?
克里斯

1
我更改了几个configvar的情况,值得重新部署但没有提交
nehem

1
设置配置变量将导致您的应用程序重新启动。它应生效而无需重新部署。你可以说得更详细点吗?
克里斯

2
不幸的是,我删除的configvar是DISABLE_COLLECTSTATIC=1,它应该调用另一个manage.py collectstatic与heroku部署逻辑挂钩的Django命令。
nehem 2016年

Answers:


130

通常,设置config var会导致您的应用程序重新启动。在大多数情况下,执行此操作后无需重新部署。

如果确实需要触发新部署,则可以添加新的空提交,然后再次推送到Heroku:

git commit --allow-empty -m "Trigger Heroku deploy after enabling collectstatic"
git push heroku master

新的空提交是常规提交。它具有哈希,作者,时间戳等。它将具有与其父代相同的树。这将导致Heroku使用与先前提交相同的代码再次构建您的应用程序段。

有点尴尬,但可以。


听起来很公平,可以胜任工作。现在,我很想备份/还原repository(.git),以便从github隐藏该提交。
nehem 2016年

@itsneo,我不会打扰。这是一个丑陋的提交,但是如果您在上一个提交的基础上继续编写代码,则下次必须强制推送到Heroku。尽管有时可能有必要,但这不是一个好习惯,但是…
Chris

即使git commit --allow-emptyEverything up-to-date从Heroku那里收到...
Benny Neugebauer

@BennyNeugebauer,请看看您的git log。在推送之前您是否成功创建了一个新的提交?
克里斯(Chris

4
嗯,我明白了!我在另一个本地分支机构(而不是master)。因此,我必须执行:git push -f heroku the_branch_i_changed:master
Benny Neugebauer

20

您也可以通过UI进行操作!

  1. 登录到Heroku仪表板并转到deploy部分
  2. 查找Manual deploy选项

点击Deploy Branch按钮!

在此处输入图片说明


1
值得注意的是,您必须将您的应用连接到GitHub才能使用此选项。如果您使用Heroku Git部署方法而未将应用程序连接到其GitHub存储库,则如何手动进行部署尚不明显。
德里克


2

你可以奔跑heroku restart --app app_name,你很好。


2
这不会重建应用程序,只会重新启动它
PanMan

@PanMan这个问题说:“在没有任何内容可推送的情况下,我该如何重新部署该应用程序?”。它不是要重新构建应用程序,而是要重新启动它,并且鉴于没有更改,我仍然不明白为什么要这么做。
Leandro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.