そのため、レールの移行内で次のコードを使用しています。
add_column :target_table, :FK, :integer
execute <<-SQL
ALTER TABLE target_table
ADD CONSTRAINT constraint FOREIGN KEY (FK)
REFERENCES some_table (id)
ON UPDATE CASCADE ON DELETE RESTRICT
SQL
そして、優れたプログラマーとして、物事をできるだけ短く、速く保ちたいと思っています。
私はこの言語に慣れていないので、以下のコードが私の SQL と (あらゆる面で) 同等かどうか知りたいです。
add_column :target_table, :FK, :integer, null: false
add_index :targe_table, :FK
プラス : これらのコードが up メソッド内にある場合、mine down メソッドはどのように見えるべきですか?
- 編集 -
私はいくつかの調査を行い、これを行う3番目の方法について読みました。
add_column :target_table, :FK, :integer, null: false, references: some_table
それらはすべて同等ですか?Rails の規則は、インデックスに適切な制約を追加しますか? 誰かが違いを教えてくれたら本当にありがたいです。