回滚一切

时间:2012-08-29 11:14:20

标签: ruby-on-rails database git heroku rollback

我将很快对生产应用程序进行更改,并且我想知道如何回滚对数据库和代码的所有更改。我认为使用pgbackups并且如果需要heroku db:push和pull将会回滚数据库,但代码呢?有没有办法使用git这可以完成,或者只是复制整个文件夹并将其复制回来,如果有错误并再次上传所有内容? 感谢。

2 个答案:

答案 0 :(得分:1)

要管理您的代码,请使用git tags

  1. 查找当前正在生产的代码的提交并对其进行标记。
  2. 将新标签添加到您打算投入生产的HEAD提交
  3. 如果需要回滚代码,则可以在推送到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
    

答案 1 :(得分:0)

你可以做纯git工作流,但是heroku确实支持发布。

heroku releases会列出您的所有版本。 heroku releases:rollback v1将创建一个新版本,其中包含v1版本中的slug。

这个和基于git的回滚都不会对您的数据进行任何更改,因此如果有数据迁移运行,它们也必须手动回滚。