"django_site" не существует при миграции - PullRequest
0 голосов
/ 21 апреля 2020

Ранее сегодня у меня были некоторые проблемы с конфликтующими миграциями по разным причинам. Я решил просто уничтожить всю БД и начать с нуля (мы довольно рано в проекте, нет ничего плохого в сбросе всего). Однако, когда я попытался восстановить и запустить все с помощью manage.py migrate, я получаю эту ошибку:

File "/Users/travis/Documents/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
                                                             ^


The above exception was the direct cause of the following exception:

Traceback (most recent call last):

  ...

    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "django_site" does not exist
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si...
                                                             ^

Это, кажется, очень распространенная ошибка, и основные решения, которые я видел (и пытался): :

  1. добавить SITE_ID = 1 в base.py; в моем случае он уже там.

  2. Включить "django.contrib.sites" ранее в DJANGO_APPS Я попытался поставить его первым и получил ту же ошибку.

  3. запустить manage.py migrate sites до других миграций; выполнение этой миграции выдает мне ту же ошибку.

Кроме того, я полностью удалил базу данных и создал новый экземпляр PG SQL, удалил проект локально и клонировал его из нашего репо. Я пробовал создавать новые вены в разных местах. Я переустановил Django.

1 Ответ

0 голосов
/ 21 апреля 2020

Наконец, ударь 100% * вдохновения после 5+ часов возни. В одном из приложений был файл utils.py с переменной domain = Site.objects.get_current().domain. Поскольку таблицы Site еще не было, она не могла получить Site объектов ... Не совсем уверена, почему возникла проблема с инициализацией БД с нуля, когда у нее не было бы проблем с получением, скажем, Users, но, возможно, там что-то уникальное в Sites.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...