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
我希望它能幫助。