如何恢复已签入到 git 的 Rails 迁移

Ali*_*i H 3 git ruby-on-rails rails-migrations

在我的development/feature分支上,我有一个提交20150818113106_add_team_id_to_account.rb(将一列添加到Account)&schema.rb应用迁移的结果。此提交已被推送,& 也存在于origin/development/feature.

现在我想恢复此更改 -Account毕竟我不想添加此列。我不知道我是否应该因此恢复 git 提交,或者运行db:migrate:down& 提交结果,或者两者兼而有之。

Moh*_*out 5

解决方案 (1)

您可以运行以下命令来回滚迁移:

rake db:migrate:down VERSION=2015081811310
Run Code Online (Sandbox Code Playgroud)

然后从存储库中删除迁移,如下所示:

git rm 20150818113106_add_team_id_to_account.rb
Run Code Online (Sandbox Code Playgroud)

然后推送这些更改,如果您部署在服务器上,请再次执行这些步骤。

解决方案(2)

创建另一个迁移以删除此列,如下所示:

rails g migration remove_team_id_from_accounts team_id:integer 
Run Code Online (Sandbox Code Playgroud)

然后rake db:migrate,然后提交和推送