【发布时间】:2014-08-22 04:07:22
【问题描述】:
当我的数据库中已经存在列时如何添加索引?
当我像这样创建迁移时:
class AddIndexToUsers < ActiveRecord::Migration
def change
remove_column :users, :id_number if index_exists?(:id_number)
add_column :users, :id_number, :string
add_index :users, :id_number, unique: true
end
end
创建具有相同 id_number 的对象时出现这样的错误:
SQLite3::ConstraintException: column id_number is not unique: INSERT INTO "users" ("bank_account", "birth_date", "confirmed", "confirmed_at", "created_at", "credit_card_id", "email", "encrypted_password", "facebook_id", "google_id", "id_issuing_country", "id_number", "last_name", "name", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
【问题讨论】:
-
您添加了唯一索引 - 您认为尝试插入重复的 id_number 时会发生什么?
标签: ruby-on-rails validation model uniq