我有谷歌这个问题。有很多类似的问题,但我找不到合适的答案。
这是错误日志的详细信息:
Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "d:\django\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "d:\django\django\core\management\__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "d:\django\django\core\management\base.py", line 288, in run_from_argv
self.execute(*args, **cmd_options)
File "d:\django\django\core\management\base.py", line 335, in execute
output = self.handle(*args, **options)
File "d:\django\django\core\management\commands\migrate.py", line 200, in handle
fake_initial=fake_initial,
File "d:\django\django\db\migrations\executor.py", line 91, in migrate
self.recorder.ensure_schema()
File "d:\django\django\db\migrations\recorder.py", line 57, in ensure_schema
raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
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"))
这是settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'USER': '*****',
'PASSWORD': '****',
'HOST': '**.***.***.**',
'PORT': '3306',
}
}
这是我的models.py
from django.db import models
class Test(models.Model):
_name = models.CharField(max_length=20, default="aaa")
_score = models.CharField(max_length=20, default="DDD")
这是我的迁移文件:0001_initial.py
# Generated by Django 2.1.dev20180329192554 on 2018-04-03 04:11
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Test',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(default='aaa', max_length=20)),
('score', models.CharField(default='DDD', max_length=20)),
],
),
]
Mysql版本:mysql版本14.14使用readline 5.1分发5.5.53,用于linux2.6(x86_64)
那些关于mysql的pkgs
谁有这个问题的想法,谢谢你的帮助。
答案 0 :(得分:1)
from django.db.backends.mysql.base import DatabaseWrapper
DatabaseWrapper.data_types['DateTimeField'] = 'datetime'
答案 1 :(得分:0)
Django 2.1目前还不支持Mysql 5.5。
答案 2 :(得分:0)
尝试从https://dev.mysql.com/downloads/connector/python/8.0.html安装MySQL / Connector Python,并使用以下命令进行安装。
pip install mysql-connector-python
您可以在seeting.py中对引擎进行如下设置。
DATABASES = {
'default': {
'NAME': 'user_data',
'ENGINE': 'mysql.connector.django',
'USER': 'mysql_user',
'PASSWORD': 'password',
'OPTIONS': {
'autocommit': True,
},
}
}
然后使用manage.py migrate
进行迁移
我希望它对我有用。
答案 3 :(得分:-1)
尝试更改您的Django
和mysqlclient
的版本,我现在使用mysqlclient==1.3.12
和Django==2.0.5
。