Rails回滚DB并恢复选择提交

时间:2018-01-30 19:14:47

标签: ruby-on-rails ruby-on-rails-4 migration rollback git-revert

我们有一个功能(包含一些数据库迁移和50多个已更改的文件),这些功能在几次提交之前已合并到master中。现在想要删除整个功能的权力。

自添加此功能以来,没有新的迁移,但我们希望保留一些新的提交。

什么是快速解除这个问题的最好方法,假设小团队并且可以强制推动原点?是否可以(读:推荐?):

  1. 将迁移回滚到此功能(PR)合并之前的那一点
  2. 将git提交恢复到同一点
  3. 重播最近的提交(通过哈希?)我们希望在代码库上保留(与不需要的功能无关)
  4. 这将对其他开发者造成严重破坏,但我们目前只是一个非常小的团队,并在此基础上共同努力。

    或许有更好的方法?

    我意识到回滚&这里回顾了其他主题,我已经阅读了很多这些,但我们的情况有所不同,因为我们想要回滚,还原然后重放某些提交,然后让原点更新,所以看起来好像这个不好的功能从未发生过(或者如果更容易,合并提交还原该功能PR是可以接受的)。

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我建议添加具有代码的单个迁移,以恢复所有这6个过时的+ 1恢复功能合并。

这样你就

  • 仍然在git历史记录中,以防需要重新应用或重用部分功能
  • 不需要太聪明,无法安全地将git和DB重置为每个dev env + staging / production上的某个状态 - 这将避免人为错误