Django обращается к несуществующему полю в базе данных

129
06 октября 2019, 06:10

уважаемые знатоки питона и django

При обращении к главной странице сайта, django обращается к несуществующему полю в базе данных.

При этом поле description_ru_spb отсутствует в базе, скачанной на проде, отсутствует в классе CarModel - модели для таблицы vans_carmodel, но присутствует в файлах миграции.

Мой вопрос вот в чем: как исправить эту ошибку, и как так получается, что на проде, при том же самом коде и базе этого нет.

Answer 1

Тут нужно более детально дебажить, так, конечно, ничего не понятно, но если этого поля нет в БД, то, наверное, его стоило бы создать. Самый простой способ - это установить django-extensions

pip install django-extensions

и воспользоваться командой sqldiff

# для всех приложений
./manage.py sqldiff -a 
# для конкретного приложения
./manage.py sqldiff <app_name>

Вам будет сгенерирован sql код, который надо выполнить, чтобы структура БД была актуальной (как сделаны модели)

Answer 2

Проблем было как минимум две:

  1. У двух файлов миграции совпадали dependencies, из-за чего выполнялось изменение ещё не существующего поля
  2. Разработчик в какой-то момент просто забил пользоваться моделями и миграциями, и начал делать всё через sql

Чем это вылечил:

  1. Более позднему файлу прописал более ранний в dependencies
  2. Сделал миграцию
  3. Очистил все таблицы при помощи truncate
  4. Ещё раз накатил скрипт базы данных, по ходу дела добавляя отсутствующие поля и таблицы вручную
READ ALSO
nth-of-type не работает с числовыми значениями

nth-of-type не работает с числовыми значениями

Есть вот такое огромное DOM-дерево сгенерированное библиотекой: Хочу выбрать из него первые два элемента с классамиtns-item

105
JS скрипт для нескольких select

JS скрипт для нескольких select

Подскажите пожалуйста, есть код, который выводит поиск в select

144
Как сделать адаптивный фон на часть экрана?

Как сделать адаптивный фон на часть экрана?

помогите, пожалуйста, реализовать одну вещьЕсть некий фон, который должен равняться по центру блоков со свойством "display: inline-block;"

122
Помощь сделать маску телефона на jquery

Помощь сделать маску телефона на jquery

Вечер добрый, помогите с маской

127