我有一个名为"20120311145341_create_resource1s.rb"的迁移.我意外地在数据库中删除了该表.我运行了"rake db:migrate"但它没有恢复该表.如何恢复?
您无法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
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助.
| 归档时间: |
|
| 查看次数: |
2692 次 |
| 最近记录: |