Tatehitoの技術メモ

ソフトウェアエンジニアです。いろいろ書きます。

【Rails】後から外部キー制約の付いたカラム(references)を追加する方法

最初にモデルを作成するタイミングで設定しておくのがベストだけど、そうもいかないときは後から設定しなくてはならないのでその手順をメモ。

検証環境

  • Rails 6.0.0
  • Ruby 2.6.3

1.マイグレーションファイルを作成する

$ rails g migration [migrationファイル名] [モデル名]:references
(ex.)rails g migration Add_References_To_TeamMember member:references

2.生成されたマイグレーションファイルを編集する

生成された時点で「null: false」オプションが付いているが、削除する。

def change
  add_reference :team_members, :member, foreign_key: true
end

※古いRailsバージョンでは「foreign_key: true」を追記する必要がある?Rails6.0.0では「foreign_key: true」付きで生成された。

3.rails db:migrate 実行

以上。