2011-04-26 114 views
0

遷移在刪除表之前,我們是否真的需要刪除外鍵?

def self.up 
    create_table :test_drafts do |t| 
     t.string :title, :limit => 255, :null => false 
     t.text :description 
     t.integer :user_id, :null => false 
     t.integer :test_id, :null => false 
     t.timestamps 
    end 

    add_foreign_key(:test_drafts,:user_id,:users,:cascade) 
    add_foreign_key(:test_drafts,:test_id,:tests,:cascade) 
    end 

    def self.down 
    drop_foreign_key(:test_drafts,:user_id) 
    drop_foreign_key(:test_drafts,:test_id) 
    drop_table(:test_drafts) 
    end 

我們真的需要刪除外鍵之前下降的表? 我可以直接刪除表而不丟棄外鍵嗎?

回答

0

是的,這是編寫遷移一個很好的做法。有幾個數據庫不允許在表中定義任何外鍵時刪除表。

作爲rails可以讓您在各種數據庫上工作,因此建議您考慮使用這些最佳實踐。

0

它是依賴關係。首先,你應該刪除獨立的表,即使它們包含外鍵。

相關問題