Обновите django-synchro для django 2.2: OperationalError - нет такой таблицы: django_content_type " - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь обновить django-synchro до django 2.2. Я уже обновил проект до django 2.1, но теперь у меня проблема с объектом ContentType

Обновленную версию до django 2.1 можно найти здесь

(python runtests.py работает, все тесты пройдены)

С django 2.2.3 у меня ошибка

django.db.utils.OperationalError: нет такой таблицы: django_content_type

Кажется, что при инициализации миграции выполняются в базе данных по умолчанию, а остальное - в тестовой базе данных (в памяти). Поэтому ContentType не виден в остальной части кода. Произошла ошибка при чтении models.py (content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE))

Любые идеи будут очень признательны ...

Я посмотрел Замечания к выпуску Django 2.2

В 2.2 есть два обратно несовместимых изменения, которые могут привести к ошибке:

Загрузка сериализованных данных TransactionTestCase: исходные данные Миграции теперь загружаются в TransactionTestCase в конце проверить, после сброса базы данных. В более старых версиях эти данные были загружается в начале теста, но это мешает тесту Опция --keepdb работает некорректно (база данных была пустой в конце всего набора тестов). Это изменение не должно влиять на ваши тесты, если вы не настроили внутренние компоненты TransactionTestCase.

Тест: Отложенные ограничения базы данных теперь проверяются в конце каждый тест TestCase на SQLite 3.20+, как и в других бэкэндах, которые поддержка отложенных ограничений. Эти проверки не реализованы для старые версии SQLite, потому что они требуют дорогой таблицы Самоанализ там.

...