移植
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 :(得分:1)
答案 1 :(得分:0)
是的,这是编写迁移的好方法。如果在其上定义了任何外键,则很少有数据库不允许删除表。
并且作为rails,您可以在各种数据库上工作,因此理想情况下建议您考虑这些最佳实践。
答案 2 :(得分:0)
是依赖性。首先,您应该删除独立表,即使它们包含外键。