django.db.utils.ProgrammingError: relation "django_content_type" already exists

22 августа 2016 г. 23:27

При переходе с версии Django 1.5.x на Django 1.7.x и версии выше могут возникнуть ошибки при миграции данных:

django.db.utils.ProgrammingError: relation "django_content_type" already exists
django.db.utils.ProgrammingError: relation "auth_permission" already exists
django.db.utils.ProgrammingError: relation "django_admin_log" already exists
django.db.utils.ProgrammingError: relation "admin_tools_dashboard_preferences" already exists
django.db.utils.ProgrammingError: relation "django_session" already exists
django.db.utils.ProgrammingError: relation "django_site" already exists

Для решения проблемы нужно воспользоваться ключом --fake-initial при вызове команды migrate:

manage.py@project > migrate --fake-initial
bash -cl "/path/to/project/env/bin/python /opt/pycharm-5.0.3/helpers/pycharm/django_manage.py migrate --fake-initial /path/to/project"
Operations to perform:
  Synchronize unmigrated apps: staticfiles, sitemaps, admin_tools, messages
  Apply all migrations: sessions, admin, sites, auth, contenttypes, dashboard
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... FAKED
  Applying auth.0001_initial... FAKED
  Applying admin.0001_initial... FAKED
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying dashboard.0001_initial... FAKED
  Applying sessions.0001_initial... FAKED
  Applying sites.0001_initial... FAKED

Process finished with exit code 0

Можно видеть, что ключ --fake-initial фейково применяет первые миграции (0001_initial) приложений.

Ошибка возникает из-за добавления нативной системы миграций в Django. До версии Django 1.7 использовалось стороннее приложение south.

Оцените статью

0 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Права на использование материала, расположенного на этой странице http://vivazzi.pro/it/programming-error-relation-already-exists/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="http://vivazzi.pro/it/programming-error-relation-already-exists/">http://vivazzi.pro/it/programming-error-relation-already-exists/</a>

Подробнее: Правила использования сайта

Комментариев: 0

Вы можете оставить комментарий как незарегистрированный пользователь. Но, зарегистрировавшись, вы сможете получать оповещения об ответах, а также иметь доступ к своему личному аккаунту для просмотра своих комментариев.

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте