我试图回滚上一次迁移:
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) ===================================
这是怎么了?我应该在运行命令之前删除迁移文件吗?
如果回滚迁移,则数据库模式将还原为先前的迁移。
但是,如果将迁移留在migrations文件夹中,Rails会假定应该运行迁移,并且只有在迁移到最新模式后才能正常工作。
如果要回滚架构,则应放弃迁移。删除文件,Rails不会抱怨。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句