【发布时间】:2013-09-30 23:47:29
【问题描述】:
我尝试回滚上次迁移:
rake db:rollback
它告诉我以下内容:
== AddUserIdToPictures: reverting ============================================
-- remove_index(:pictures, {:column=>[:user_id, :visible]})
-> 0.1201s
-- remove_column(:pictures, :user_id, :integer)
-> 0.0127s
== AddUserIdToPictures: reverted (0.1567s) ===================================
然后,如果我尝试访问某个页面,我会收到错误:
Migrations are pending; run 'rake db:migrate RAILS_ENV=development' to resolve this issue
但是当我执行错误提示时:rake db:migrate RAILS_ENV=development,它会重新创建我在上面回滚的内容:
== AddUserIdToPictures: migrating ============================================
-- add_column(:pictures, :user_id, :integer)
-> 0.0300s
-- add_index(:pictures, [:user_id, :visible])
-> 0.1007s
== AddUserIdToPictures: migrated (0.1310s) ===================================
这里有什么问题?我应该在运行命令之前删除迁移文件吗?
【问题讨论】:
-
就是这样,如果它存在,它假定它应该运行
-
如果我在删除这个迁移文件后第二次运行 rake db:rollback 会回滚最后一个存在的迁移文件吗?
-
它现在可以正常工作了,谢谢,我为另一个创建我的“图片”表的迁移运行回滚,但这次没有显示需要运行 rake db:migrate RAILS_ENV=development 的错误,我不'不知道为什么这个错误是特定于创建列和索引(而不是表)
-
@apneadiving 我过去也做了很多回滚,但从未删除任何迁移文件,这会很危险吗?
标签: ruby-on-rails