Rails を使用して、ユーザー テーブル、グループ テーブル、結合用の groups_users を含む HATBM モデルをセットアップしました (すべて scaffold コマンドを使用)。group_id/user_id の組み合わせを一意に制限するために、テーブル groups_users の 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を使用し、dbとしてsqlite3を使用しています。
ネット上でそのエラーのレポートを見なかったので、明らかな説明があるに違いないと確信していますが、私はひどく立ち往生しています...ここで満たされていない制約は何ですか? group_id と user_id のインデックスを削除しようとしましたが、何も変わりません。一意性のない 2 列インデックスを作成すると、機能します (ただし、役に立ちません...)。
誰かの助けが大歓迎です...