У меня есть таблица обменных валют, у которых первичный ключ состоит из двух столбцов, от и до. Я хочу создать таблицу rate_history с внешним ключом для обменных валют.
Я попытался создать два внешних ключа для обоих упомянутых первичных ключей.
class CreateExchangeableCurrencies < ActiveRecord::Migration[5.2]
def change
create_table :exchangeable_currencies, primary_key: %i[from to] do |t|
t.string :from
t.string :to
t.timestamps
end
end
end
class CreateRateHistories < ActiveRecord::Migration[5.2]
def change
create_table :rate_histories do |t|
t.date :date
t.float :rate
t.string :from
t.string :to
t.timestamps
end
add_foreign_key :rate_histories, :exchangeable_currencies,
column: :from, primary_key: :from, on_delete:
:cascade
add_foreign_key :rate_histories, :exchangeable_currencies,
column: :to, primary_key: :to, on_delete: :cascade
end
end
Вот ошибка
Столбец to
в таблице rate_histories
не соответствует столбцу to
в exchangeable_currencies
, который имеет тип varchar(255)
. Чтобы решить эту проблему, измените тип столбца to
на rate_histories
на: string. (Например t.string :to
).