因此,我使用mysql而不是sqlite构建了一个简单的应用程序,当我在localhost上部署时,一切都能很好地迁移,localhost db设置如下所示:
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.mysql',
# 'NAME': 'news',
# 'USER': 'myname',
# 'PASSWORD': 'my_password',
# 'HOST': 'localhost',
# 'PORT': '',
#
# }
# }
但我将设置更改为以下内容,以便使用cleardb插件部署到heroku:
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\u db\u name、heroku\u db\u username和heroku\u db\u 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条答案
按热度按时间mw3dktmi1#
我有同样的问题,我有MySQLServer5.5,它似乎不支持Django2.1
所以我降到了django 2.0:
我在这里发现了这个想法:https://www.codetw.com/clxcyl.html