2016-08-24 41 views
4

我已經存在的這種方式創建數據庫的外鍵:地址:on_delete已經存在foreign_key在軌遷移

class CreateUser < ActiveRecord::Migration 
    def change 
    create_table do ... end 
    add_foreign_key :users, :admins, column: :admin_id 
    end 
end 

,但忘了加on_delete: :nullify。遷移已經在生產中使用&。我想添加新的遷移,它將爲此PK約束添加cascale刪除。如何實現這一目標?

回答

4

您可以刪除並在接下來的遷移添加外鍵:

class ChangeForgeinKeyOnUsersTable < ActiveRecord::Migration[5.0] 
    def change 
    remove_foreign_key :users, column: :admin_id 
    add_foreign_key :users, :admins, column: :admin_id, on_delete: :nullify 
    end 
end 
+0

也:如果列已經有數據填充,不要忘記遷移數據,以及(即全選,然後插入所有) –

相關問題