Итак, я создал простое приложение, использующее 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, и все это прекрасно работает на моей локальной машине. Я могу опубликовать всю трассировку ошибок, если это будет более полезным.
Спасибо.