Django/MySQl как исправить База данных вернула недопустимое значение времени. Установлены ли определения часовых поясов для вашей базы данных?
Что случилось
После переноса моего приложения Django
, которое работало как ожидалось, с VPS на виртуальный хостинг с Cpanel
Я изменил базу данных с PostgresSQL
на MySQL
, всякий раз, когда я открываю объект, который имеет поле created_at
, которое является Datetime Field
, я получаю эту ошибку.
Ошибка
Database returned an invalid datetime value. Are time zone definitions for your database installed?
Что я пробовал
После некоторых поисков я обнаружил, что это можно исправить, выполнив эту команду в terminal
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Эта команда должна заполнить таблицы Timezone в моей базе данных.
Проблема
Я не могу запустить комментарий, упомянутый выше, так как я использую Cpanel
виртуальный хостинг и очень ограничен в выборе и командах, которые я могу запустить, используя terminal
. поэтому я попытался запустить его, я получил эту ошибку
Что мне нужно
Я думаю, что решение сейчас заключается в том, чтобы найти способ заполнить таблицы временных зон в базе данных Mysql
, используя только PhpMyAdmin
и не используя terminal
Интересно, что эта ошибка рассматривается в документации Django,
Я получаю ошибку "Установлены ли определения часовых поясов для вашей базы данных?"
Если вы используете MySQL, смотрите раздел Определения часовых поясов в примечаниях к MySQL для получения инструкций по загрузке определений часовых поясов.
Когда мы проверяем внутри определений часовых поясов, мы читаем
Если вы планируете использовать поддержку временных зон timezone в Django, используйте mysql_tzinfo_to_sql для загрузки таблиц временных зон в базу данных MySQL. Это нужно сделать только один раз для вашего сервера MySQL, а не для каждой базы данных.
Зная, что OP может запустить это, я бы связался с хостинг-провайдером, чтобы сделать это.