1
手动删除它,我有一个名为“20120311145341_create_resource1s.rb”迁移。我无意中在数据库中删除了该表。我跑了“耙分贝:迁移”,但它不会恢复该表。如何恢复它?恢复迁移后的数据库
手动删除它,我有一个名为“20120311145341_create_resource1s.rb”迁移。我无意中在数据库中删除了该表。我跑了“耙分贝:迁移”,但它不会恢复该表。如何恢复它?恢复迁移后的数据库
,因为我认为你已经在最新的移民无法再次运行db:migrate
。
a)如果你想重新迁移是最新的一个,你可以做以下的回退,然后再运行它。
rake db:rollback
rake db:migrate
b)若它不是最新的迁移,你需要列出文件db/migrate
目录,注释以前迁移的版本20120311145341_create_resource1s.rb,然后运行:
rake db:migrate VERSION=20120309101821
(版本改变为适合你)
rake db:migrate
请注意,如果你得到一个错误,像这样的Mysql2::Error: Unknown table 'xxx': DROP TABLE 'xxx'
可以变通办法,确保你在迁移下来的方法检查表存在:
def self.down
drop_table :xxx if ActiveRecord::Base.connection.table_exists? 'xxx'
end
我希望它能帮助。