使用 rails,我设置了一个 HATBM 模型,其中包含一个 users 表、一个 groups 表和一个用于连接的 groups_users(所有这些都使用脚手架命令)。现在我想添加一个迁移以在 group_users 表的 group_id 和 user_id 列上添加唯一索引,以约束 group_id/user_id 对是唯一的。各个列 group_id 和 user_id 不是 null 并且已经索引。
这是我想在迁移中执行的行:
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 上的索引,但它没有改变任何东西。如果我创建没有唯一性的双列索引,那么它可以工作(但无济于事......)
非常感谢有人的帮助...