Ruby on rails 运行回滚迁移时出错

Ruby on rails 运行回滚迁移时出错,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是rails的新手,正在从事一个现有的项目。我创建了一些新的迁移,然后我想回滚以编辑它们并再次迁移。我犯了一个错误,比我完成的迁移多了一步。现在我尝试使用rakedb:migrate,它给出了一个关于现有迁移的错误,我错误地回滚了。错误是关于remove\u column语句的,它表示某个列不存在,因此无法将其删除。但是在我做rakedb:migrate之前,在我自己创建迁移之前,没有这样的错误。关于信息,我想说,我没有做任何与该表相关的事情 你能帮忙吗 提前谢谢 删除迁移以删除列,迁移数据库

我是rails的新手,正在从事一个现有的项目。我创建了一些新的迁移,然后我想回滚以编辑它们并再次迁移。我犯了一个错误,比我完成的迁移多了一步。现在我尝试使用
rakedb:migrate
,它给出了一个关于现有迁移的错误,我错误地回滚了。错误是关于
remove\u column
语句的,它表示某个列不存在,因此无法将其删除。但是在我做rakedb:migrate之前,在我自己创建迁移之前,没有这样的错误。关于信息,我想说,我没有做任何与该表相关的事情

你能帮忙吗


提前谢谢

删除迁移以删除列,迁移数据库并创建新迁移以删除列


如果编辑了已有的迁移,请注释掉行
remove\u column
,运行
rake db:migrate
,取消对它的注释,然后再次运行
rake db:migrate

执行回滚时,该列被删除,之后回滚被中断。因此没有完成。只要试着通过注释掉特定的remove\u列迁移来修复它。然后再次回滚。然后,再次迁移。谢谢。它确实奏效了。但是当我运行rollback时,它不应该执行与remove\u列相反的操作吗?我的意思是,它不应该再次创建该列,所以当我再次运行迁移时,它应该会工作吗?谢谢你的回答。我是根据你回答的第二部分做的。它也起作用了,但我有一个问题。当我取消注释并运行rakedb:migrate时,没有消息,我认为这是很自然的。因为rails可以跟踪所有迁移,并且不会再次执行它们。因此,取消注释不应该做任何事情。对吗?