Приложение Django выдает MigrationSchemaMissing при переходе на геройку MySQL ClearDB - PullRequest
0 голосов
/ 05 ноября 2018

Итак, я создал простое приложение, использующее MySQL вместо SQlite, и все, что происходит, хорошо переносится при развертывании на localhost, настройки БД localhost выглядят так:

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.mysql',
#         'NAME': 'news',
#         'USER': 'myname',
#         'PASSWORD': 'my_password',
#         'HOST': 'localhost',   
#         'PORT': '',
#
#     }
# }

Но я изменяю настройки на следующие для развертывания на heroku с помощью дополнения ClearDB:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'heroku_db_dbname',
    'USER': 'heroku_db_username',
    'PASSWORD': 'heroku_db_password',
    'HOST': 'us-cdbr-iron-east-01.cleardb.net',
    'PORT': '3306',

}

}

С heroku_db_name, heroku_db_username и heroku_db_password, очевидно, являются фактическими значениями из heroku.

Приложение разворачивается очень хорошо, за исключением БД, и я могу выполнять миграции без проблем, но после запуска

python manage.py migrate

Я получаю исключение MigrationSchemaMissing, более конкретно:

django.db.migrations.exceptions.MigrationSchemaMissing: 
Unable to create the django_migrations table ((1064, "You have an error
 in your SQL syntax; check the manual that corresponds to your MySQL server
 version for the right syntax to use near '(6) NOT NULL)' at line 1"))

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

Спасибо.

1 Ответ

0 голосов
/ 18 января 2019

У меня была такая же проблема, у меня MySQL server 5.5, похоже, он не поддерживается Django 2.1

Итак, я опустился до Django 2.0:

pip install Django==2.0.0 -i https://pypi.douban.com/simple

Я нашел идею здесь: https://www.codetw.com/clxcyl.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...