🖥

#Rails マイグレーションで on_delete: :nullify を指定して、 DB に ON DELETE SET NULL の外

2019/11/08に公開

class CreateBook < ActiveRecord::Migration[5.2]
  def change
    create_table :book do |t|
      t.references :user, foreign_key: { on_delete: :nullify }
    end

    # あとから追加する場合は多分こう
    # add_foreign_key "books", "users", on_update: :nullify
  end
end

ON DELETE SET NULL とは

  • 親のレコード = user が削除された時に、子が持っている親のID = user_id が null に更新される
  • 親のレコード = user が削除された時に、子のレコード = book は削除されない

参考

外部キー制約について - Qiita

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2681

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-11-08

Discussion