2
遷移了這個遷移remove_reference和add_reference報告沒有外鍵
def change
remove_reference :order_items, :order, foreign_key: true
end
或者這種遷移
def change
add_reference :order_items, :order, foreign_key: true
end
遷移下跌引發此錯誤下來的遷移:
StandardError: An error has occurred, this and all later migrations canceled:
Table 'order_items' has no foreign key for {:to_table=>"orders"}
G:/Rails/learn_rails/db/migrate/20170222035809_move_order_items_under_restaurant_orders.rb:3:in `change'
G:/Rails/learn_rails/bin/rails:4:in `require'
G:/Rails/learn_rails/bin/rails:4:in `<top (required)>'
-e:1:in `load'
-e:1:in `<main>'
ArgumentError: Table 'order_items' has no foreign key for {:to_table=>"orders"}
G:/Rails/learn_rails/db/migrate/20170222035809_move_order_items_under_restaurant_orders.rb:3:in `change'
G:/Rails/learn_rails/bin/rails:4:in `require'
G:/Rails/learn_rails/bin/rails:4:in `<top (required)>'
-e:1:in `load'
-e:1:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
My
order_items
table does haveorder_id
column (and it is indexed) and I do haveorders
table, but then why isn't rails finding the columnorder_id
and dropping it?
我暫時解決它
remove_index :order_items, :order_id
remove_column :order_items, : order_id
但我做什麼,如果我必須遷移下來add_reference
?
版本'5.0.1' –