@howuu

Django.db.utils.OperationalError: no such table?

Подключаю несколько старых приложений к новому проекту на Django, при миграции выдает такую ошибку
В views, у меня часто встречается вещи вроде таких
oregon = State.objects.get_or_create(value = "Oregon")[:0]


Не могу сделать makemigrations, я пробовал делать --fake миграций, делать --runsyncdb и все похожие вопросы со stackoverflow уже попробовал, я использую сейчас sqlite, я пробовал удалять уже имеющиеся миграции или удалять всю базу данных и делать их заново, я предполагаю, что конфликт в том, что я в представлениях сразу делаю запросы к бд, но есть альтернативное решение, чем закомментить все такие участики в представлениях, сделать миграцию и идти дальше?
  • Вопрос задан
  • 18 просмотров
Пригласить эксперта
Ответы на вопрос 1
@tumbler
бекенд-разработчик на python
Если у Вас no such table возникает даже при запуске manage.py shell, значит у вас проблемы) Нельзя выполнять SQL-запросы до полной инициализации приложений, это влияет, как видите, на создание миграций и выполнение тестов. Я бы порекомендовал все такие места отрефакторить: заменить прямые инициализации как в вопросе на какие-то lazy-аналоги либо переместить их в cached property у class-based view. Вариантов куча и все специфичные.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы