Python Django应用程序在迁移到heroku MySQL ClearDB时抛出MigrationSchemaMissing
因此,我使用MySQL而不是SQlite构建了一个简单的应用程序,当我在localhost上部署时,所有内容都能很好地迁移,localhost DB设置如下所示:Python Django应用程序在迁移到heroku MySQL ClearDB时抛出MigrationSchemaMissing,python,mysql,django,heroku,Python,Mysql,Django,Heroku,因此,我使用MySQL而不是SQlite构建了一个简单的应用程序,当我在localhost上部署时,所有内容都能很好地迁移,localhost DB设置如下所示: # DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.mysql', # 'NAME': 'news', # 'USER': 'myname', # 'PASSWORD': 'my_passw
# 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_db_名称、heroku_db_用户名和heroku_db_密码显然是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生成的,并且在我的本地机器上运行良好。如果这更有帮助的话,我可以发布整个错误跟踪
谢谢。我也有同样的问题,我有MySQL服务器5.5,似乎Django 2.1不支持它 因此,我降级到Django 2.0:
pip install Django==2.0.0 -i https://pypi.douban.com/simple
我在这里发现了这个想法:我也有同样的问题,我有MySQL服务器5.5,似乎Django 2.1不支持它 因此,我降级到Django 2.0:
pip install Django==2.0.0 -i https://pypi.douban.com/simple
我在这里找到了这个想法:尝试授予对模式的访问权-将模式public上的用法授予public;将创建模式public授予public;侧记:不要硬编码数据库设置,而是考虑使用类似的东西或从环境中提取数据库连接信息。将创建模式public授予public;侧记:不要硬编码数据库设置,而是考虑使用类似的东西或从环境中提取数据库连接信息。