Django: Ошибка неизвестного столбца при запуске на производственном сервере

Когда я пытаюсь получить доступ к моему приложению Django на рабочем сервере (AWS EBS), оно продолжает выдавать следующую ошибку (1054, "Unknown column 'two_factor_phonedevice.throttling_failure_timestamp' in 'field list'").

Странно, но при локальном запуске приложение работает нормально, используя точно такую же базу данных MYSQL (AWS RDS) и настройки. Я пробовал удалять базу данных и запускать миграции заново, полагая, что это связано с несоответствием между файлами базы данных и миграций, однако я по-прежнему получаю ту же ошибку.

Я использую модуль django_two_authentication для аутентификации/логинов пользователей. Таблица two_factor_phonedevice создается модулем для отслеживания устройств пользователей, зарегистрированных для двухфакторной аутентификации.

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

Я не знаком конкретно с django_two_authentication, но я бы проверил различные модули настроек, которые вы используете в каждой среде. Возможно, у вас есть различия в INSTALLED_APPS или какой-либо другой соответствующей записи.

Оказалось, что версия модуля не была указана в производственном файле requirements.txt, что означало, что самая новая версия (которая имела другую схему базы данных) была установлена по умолчанию, в результате чего разные версии были запущены локально и в производственном окружении.

Для решения этой проблемы я явно установил версию модуля в файле requirements.txt, чтобы она совпадала с локальной.

Вернуться на верх