2011-08-18 98 views
93
rails g model Rating user_id:integer message:string value:integer 

如何完全刪除此模型?由於刪除導軌中的模型(反轉「導軌g模型標題...」)

+4

米哈伊爾的下方頂端回答應用於上次遷移中創建的模型。那些想要刪除已經存在了一段時間的模型和表的表格,[this thread](http://stackoverflow.com/questions/15648268/what-is-the-best-way-to-drop-a -table-remove-a-model-in-rails-3)準確地描述了要做什麼。 – Ninjakannon

回答

42

試試這個

rails destroy model Rating 

它將刪除模型,移植,測試和燈具

+3

它會刪除所有內容,但不會創建降級遷移或其他內容。 –

169
bundle exec rake db:rollback  
rails destroy model <model_name> 

當您生成一個模型,它會創建一個數據庫遷移。如果您在該模型上運行「銷燬」,它將刪除遷移文件,但不會刪除數據庫表。所以之前運行

bundle exec rake db:rollback 
+0

:(閱讀第一行,並做到了這是我的錯,但正確排序的答案可能有幫助 –

+1

同意,編輯我的答案:) –

+0

謝謝:)我努力修復我現在的混亂 –

22

對於未來發問:如果你不能從控制檯刪除表,嘗試創建降表爲您遷移。您應該創建一個遷移,然後在文件中記表,你想下降是這樣的:

class DropTables < ActiveRecord::Migration 
    def up 
    drop_table :table_you_dont_want 
    end 

    def down 
    raise ActiveRecord::IrreversibleMigration 
    end 
end 
+0

很好的答案,將像Capistrano部署一樣預期。 – LessQuesar

9
  1. 要刪除的遷移(如果你已經遷移的遷移)

    rake db:migrate:down VERSION="20130417185845" #Your migration version 
    
  2. 要刪除模式

    rails d model name #name => Your model name 
    
+0

'鐵軌d模型'是我正在尋找扭轉我的'軌道g模型'。 –