2016-08-24 11 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制約のカスケール削除を追加する新しい移行を追加したいと思います。それを達成する方法?

答えて

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

をも:列はすでにデータが移入されている場合にもデータを移行することを忘れないでください(すなわち、すべてを選択し、すべてを挿入します) –

関連する問題