Rails 迁移,引用 `unique: true` 未在架构中生成 `unique: true` 导致 constancy_fail 检查失败
Rails migration, references `unique: true` isn't generating `unique: true` in schema causing constancy_fail check to fail
我有以下迁移
class CreateBooking < ActiveRecord::Migration[5.1]
def change
create_table :bookings do |t|
t.integer :day_period, default: 0
t.references :service, foreign_key: true, unique: true, dependent: :destroy, index: true
end
end
end
并生成以下架构:
create_table "bookings", force: :cascade do |t|
t.integer "day_period", default: 0
t.bigint "service_id"
t.index ["service_id"], name: "index_bookings_on_service_id"
end
当我 运行 守卫 运行 一个 consistency_fail
测试失败时:
There are calls to has_one that aren't backed by unique indexes.
----------------------------------------------------------------
Model Table Columns
----------------------------------------------------------------
Service bookings (service_id)
----------------------------------------------------------------
原来我没有 unique: true
但我回滚并添加了它,仍然是同样的问题,同样,没有 index: true
所以我回滚并添加了它还是一样的问题。
我认为这是因为架构中的 service_id
没有 unique: true
但我不知道,也找不到关于我的具体问题的任何信息。
是什么导致了这个问题,我在做什么导致了这个问题,在当前迁移的情况下,我能做些什么来阻止这个问题?
t.references :service, foreign_key: true, dependent: :destroy, index: {unique: true}
我有以下迁移
class CreateBooking < ActiveRecord::Migration[5.1]
def change
create_table :bookings do |t|
t.integer :day_period, default: 0
t.references :service, foreign_key: true, unique: true, dependent: :destroy, index: true
end
end
end
并生成以下架构:
create_table "bookings", force: :cascade do |t|
t.integer "day_period", default: 0
t.bigint "service_id"
t.index ["service_id"], name: "index_bookings_on_service_id"
end
当我 运行 守卫 运行 一个 consistency_fail
测试失败时:
There are calls to has_one that aren't backed by unique indexes.
----------------------------------------------------------------
Model Table Columns
----------------------------------------------------------------
Service bookings (service_id)
----------------------------------------------------------------
原来我没有 unique: true
但我回滚并添加了它,仍然是同样的问题,同样,没有 index: true
所以我回滚并添加了它还是一样的问题。
我认为这是因为架构中的 service_id
没有 unique: true
但我不知道,也找不到关于我的具体问题的任何信息。
是什么导致了这个问题,我在做什么导致了这个问题,在当前迁移的情况下,我能做些什么来阻止这个问题?
t.references :service, foreign_key: true, dependent: :destroy, index: {unique: true}