我将很快对生产应用程序进行更改,我想知道如何回滚对数据库和代码的所有更改。我认为使用 pgbackups 和如果需要 heroku db:push 和 pull 将回滚数据库,但是代码呢?有没有办法使用 git 来做到这一点,或者只是复制整个文件夹并在出现错误时将其复制回来并再次上传所有内容?谢谢。
问问题
337 次
2 回答
1
要管理您的代码,请使用git tags。
- 找到当前生产中的代码的提交并标记它。
- 向您打算推送到生产的 HEAD 提交添加新标签
如果代码需要回滚,您可以在推送到 heroku 期间定位较旧的标签。
您可以运行git log
以查看提交的历史记录。查找在您最后一次投入生产之前所做的提交。找到该提交的哈希(与日志中的 git 消息在同一行)并标记它
git tag -a v0.1 THEHASH
现在标记你的HEAD
git tag -a v0.2
现在推送到heroku
git push -f heroku v0.2^{}:master
如果事情变糟,回滚到v.0.1
git push -f heroku v0.1^{}:master
于 2012-08-29T11:23:53.987 回答
0
您可以执行纯 git 工作流程,但 heroku 确实支持发布。
heroku releases
将列出您的所有版本。heroku releases:rollback v1
将创建一个新版本,其中包含与 v1 版本一样的 slug。
这和基于 git 的回滚都不会对您的数据进行任何更改,因此如果运行数据迁移,它们也必须手动回滚。
于 2012-08-29T15:33:04.163 回答