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.

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

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

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

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

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

Автор статьи

Артём Мальцев

Веб-разработчик, владеющий знаниями языка программирования Python, фреймворка Django, системы управления содержимым сайта Django CMS, платформы для создания интернет-магазина Django Shop и многих различных приложений, использующих эти технологии.

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

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

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

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

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.

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

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментирования от своего имени войдите или зарегистрируйтесь на сайте Vuspace

Отправить

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

Попробуйте

Выберите валюту для отображения денежных единиц