Возникла ошибка при подключении MySQL к Django в качестве базы данных бэкенда
Для того, чтобы подключить MySQL как Backend Language для Django, я сделал некоторые изменения в settings.py и привел измененный код ниже
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'PASSWORD':'2684',
'HOST':'127.0.0.1',
'PORT':'3306',
'USER':'root'
}
}
после сохранения и пока я выполняю команду
python manage.py makemigrations
У меня возникла ошибка
E:\Python\sample_django\root>python manage.py makemigrations
C:\Users\2684j\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\management\commands\makemigrations.py:105: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': (1193, "Unknown system variable 'default_storage_engine'")
warnings.warn(
No changes detected
Моя база данных Данные приведены ниже
Имя базы данных : django
Пароль MySQL : 2684
Порт : 3306
Хост : localhost
Пользователь : root
python manage.py makemigrations
только упаковывает изменения модели в отдельные файлы миграции. Поскольку вы не внесли никаких дальнейших изменений в свои модели, он говорит "Изменений не обнаружено".
Итак, после выполнения makemigrations
, вам нужно выполнить python manage.py migrate
, чтобы применить их к вашей базе данных.
Использовать сначала
Python manage.py makemigrations
then
Python manage.py migrate
Все ваши проблемы исчезнут.
Если это работает, пожалуйста, проголосуйте за меня
Можете ли вы проверить версию вашего MySQL?
Имя переменной, содержащей "default_storage_engine
", было изменено с версии 5.5 на 5.7
До версии 5.5 существовал только "storage_engine
". Начиная с 5.5, можно было использовать и "storage_engine
", и "default_storage_engine
", а теперь выше 5.7 принимается только "default_storage_engine
".
Вероятной причиной RunTimeError
является версия MySQL. Если версия MySQL ниже 5.5, то имя переменной должно быть storage_engine
, а если выше 5.7, то default_storage_engine
.
Не могли бы вы сообщить нам версию MySQL, которую вы используете?
Вы также можете попробовать добавить следующую структуру OPTIONS
в поле settings.py DATABASES
:
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'PASSWORD':'2684',
'HOST':'127.0.0.1',
'PORT':'3306',
'USER':'root',
'OPTIONS': {
"init_command": "SET default_storage_engine=<DB name>",
},
}
}
Переменная должна быть storage_engine
если версия MySQL<5.5 и default_storage_engine
если версия MySQL>5.7