【发布时间】:2013-02-07 13:33:02
【问题描述】:
使用rails,我设置了一个HATBM 模型,其中包含一个用户表、一个组表和一个用于连接的groups_users(全部使用scaffold 命令)。 现在我想添加一个迁移以在 group_users 表的 group_id 和 user_id 列上添加唯一索引,以约束 group_id/user_id 对是唯一的。 各个列 group_id 和 user_id 不为空,并且已建立索引。
这是我要在迁移中执行的行:
add_index :groups_users, [:user_id, :group_id], :unique => true
我收到以下错误:
-- add_index(:groups_users, [:user_id, :group_id], {:unique=>true})
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::ConstraintException: constraint failed: CREATE UNIQUE INDEX "index_groups_users_on_user_id_and_group_id" ON "groups_users" ("user_id", "group_id")
我在 mac os 上使用 rails 3.2.11 和 sqlite3 作为数据库。
我相信肯定有一些明显的解释,因为我在网上没有看到任何关于该错误的报告,但我非常卡住......这里不满足什么约束?我试图删除 group_id 和 user_id 上的索引,但它没有改变任何东西。如果我创建没有唯一性的双列索引,那么它可以工作(但无济于事......)
非常感谢某人的帮助...
【问题讨论】:
标签: ruby-on-rails