我正在尝试使用一些已经存在的数据在MySql中创建一个数据库。它基于erghast db。我想引用另一个表,但是即使我之前以相同的方式引用了同一张表,也会收到一条错误消息
class CreateRaces < ActiveRecord::Migration[6.0]
def change
create_table :races do |t|
t.integer :year, null: false
t.integer :round, null: false
t.references :circuit, foreign_key: {on_update: :cascade}
t.string :name, null: false
t.date :date, null: false
t.time :time, null: true
t.string :url, null: false
end
end
end
我的比赛表已创建。 然后我执行此操作,然后再执行大约3或4个其他操作.....
class CreatePitStops < ActiveRecord::Migration[6.0]
def change
create_table :pit_stops do |t|
t.references :race, foreign_key: {on_update: :cascade}
t.references :driver, foreign_key: {on_update: :cascade}
t.references :stop
t.integer :lap
t.time :time, null: true
t.string :duration, null: true
t.integer :milliseconds, null: true
end
end
end
但是,当我尝试这个
class CreateResults < ActiveRecord::Migration[6.0]
def change
create_table :results do |t|
t.references :race, foreign_key: {on_update: :cascade}
t.references :driver, foreign_key: {on_update: :cascade}
t.references :constructor, foreign_key: {on_update: :cascade}
t.integer :number, null: true
t.integer :grid, null: false
t.integer :position, null: true
t.string :positionText, null: false
t.integer :positionOrder, null: false
t.integer :points, null: false
t.integer :laps, null: false
t.string :time, null: true
t.integer :milliseconds, null: true
t.integer :fastestLap, null: true
t.integer :rank, null: true
t.string :fastestLapTime, null: true
t.string :fastestLapSpeed, null: true
t.references :status, foreign_key: {on_update: :cascade}
end
end
end
控制台出现错误
Column `race_id` on table `results` does not match column `id` on `races`, which has type `bigint(20)`. To resolve this issue, change the type of the `race_id` column on `results` to be :bigint. (For example `t.bigint :race_id`).
Original message: Mysql2::Error: Cannot add foreign key constraint
/home/me/Documents/source/repos/Projects/F1_API/db/migrate/20190802234105_create_results.rb:3:in `change'
编辑;我已经尝试在其中添加类型::bigint。
我刚刚意识到,是因为表“ results”的名字吗? 因为另一个出现相同问题的表被命名为“ constructor_results”
Ruby 2.6.3p62 导轨6 RC2 MySQL 14.14发行版5.7.26