提升MigrationSchemaMissing(“无法创建django_migrations表(%s)”%exc)

时间:2018-04-03 07:53:53

标签: python django python-3.x django-models

我有谷歌这个问题。有很多类似的问题,但我找不到合适的答案。

这是错误日志的详细信息:

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

enter image description here

谁有这个问题的想法,谢谢你的帮助。

4 个答案:

答案 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)

尝试更改您的Djangomysqlclient的版本,我现在使用mysqlclient==1.3.12Django==2.0.5