def change
create_table :transactions do |t|
# 1. (index も作成してくれます)
t.references :order, foreign_key: true
# 1'.
t.references :order,
index: { name: '<index_name>' },
foreign_key: { to_table: '<actual_table_name>', name: '<foreign_key_name>' },
null: false
# 2. (belongs_to は references の alias です)
t.belongs_to :order, foreign_key: true
# 3.
t.integer :order_id, index: true
# `index: true` を付けない場合は、 `create_table` 外で `add_index :transactions, :order_id` とする。
end
# 4.
add_reference :transactions, :user, foreign_key: true, null: false
# 5.
# https://api.rubyonrails.org/?q=add_foreign_key
# add_foreign_key(from_table, to_table, options = {})
add_foreign_key :transactions, :orders
end