SQLite3::ConstraintException: ограничение FOREIGN KEY не удалось: пользователи DROP TABLE

Как отключить (я еще не знаю правильный термин) внешние ключи перед DROP TABLE? ИЛИ

правильный способ удалить таблицу?

выполнил шаги, представленные здесь

Ссылка на изображение

снова получил ту же ошибку SQLite3::ConstraintException: ограничение FOREIGN KEY не удалось: пользователи DROP TABLE.

(byebug) execute "PRAGMA foreign_keys = OFF"
-- execute("PRAGMA foreign_keys = OFF")
   -> 0.0009s
[]
(byebug) execute "DROP TABLE users"
-- execute("DROP TABLE users")
*** ActiveRecord::InvalidForeignKey Exception: SQLite3::ConstraintException: FOREIGN KEY constraint failed: DROP TABLE users

nil

person robincEPtion    schedule 02.04.2018    source источник
comment
@robinEPtion вы хотите удалить/удалить/удалить таблицу или внешний ключ?   -  person Aay Que    schedule 02.04.2018
comment
Таблица выпадения @AayQue   -  person robincEPtion    schedule 02.04.2018
comment
@robincEPtion вы опускаете таблицу с помощью миграции?   -  person Anand    schedule 02.04.2018
comment
@robincEption вам нужно сначала удалить значения этой таблицы, которые хранятся как внешние ключи в других таблицах.   -  person Aay Que    schedule 02.04.2018
comment
да @Gabbar, я должен сделать это во время миграции.   -  person robincEPtion    schedule 02.04.2018
comment
@robincEPtion, можете ли вы поделиться своим кодом модели пользователя?   -  person Anand    schedule 02.04.2018
comment
Пользовательская таблица имеет одну ссылку на себя и ссылается на другую таблицу. Теперь что я могу сделать?   -  person robincEPtion    schedule 02.04.2018


Ответы (1)


предположим, что ваши пользователи связаны с таблицей сообщений, затем создайте миграцию и удалите

class RemoveForeignKey < ActiveRecord::Migration
  def change
    # remove the old foreign_key
    remove_foreign_key :posts, :users
  end
end
person Anand    schedule 02.04.2018