我創建了一個獨特的指數上我的模型像這樣:如何在導軌遷移中反轉Postgresql唯一索引約束?
add_index(:courses, :name, unique: true)
我不再需要的姓名是唯一的。我想我有和this person一樣的問題,所以我通過這些建議無濟於事。
我收到這樣的錯誤「的ActiveRecord :: RecordNotUnique:PG :: UniqueViolation:錯誤:重複鍵值違反唯一約束‘index_courses_on_name’當我嘗試添加一條記錄的同名
要取出唯一的。約束我已經試過:
remove_index :courses, :name
(遷移成功,但後來我得到了同樣的錯誤提示仍然有唯一性約束)
execute "ALTER TABLE courses DROP CONSTRAINT unique_index_courses_on_name"
execute "ALTER TABLE courses DROP CONSTRAINT index_courses_on_name"
execute "ALTER TABLE courses DROP CONSTRAINT unique_name"
execute "ALTER TABLE courses DROP CONSTRAINT name"
execute "ALTER TABLE courses DROP INDEX index_courses_on_name"
execute "ALTER TABLE courses DROP INDEX courses_on_name"
execute "DROP INDEX unique_courses_name"
(PG :: UndefinedObject:錯誤:指數 「unique_courses_name」 不不存在)
execute "ALTER TABLE courses disable CONSTRAINT unique_courses_name"
execute "ALTER TABLE courses DROP INDEX unique_courses_name"
(PG ::語法錯誤:錯誤:在或接近 「約束」 LINE 1語法錯誤:ALTER TABLE課程禁用約束unique_courses_name)
我在PSQL 9.4.4,Rails的4.2,和我的理智的最後盎司。感謝大家。
顯示自'psql',如表定義'\ dt課程' –
@craig - 它表示在dev中找不到任何關係,並且無法在生產中找到數據庫連接(我推測是因爲它是到db的URL而不是在Heroku的/ var中)。我要去調查爲什麼我得到這個錯誤,儘管它似乎工作正常。 –