Raise MigrationSchemaMissing("无法创建 django_migrations 表 (%s)" % exc)

Cyr*_*rus 5 python django django-models python-3.x

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

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

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"))
Run Code Online (Sandbox Code Playgroud)

这是settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': '*****',
        'PASSWORD': '****',
        'HOST': '**.***.***.**',
        'PORT': '3306',
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的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")
Run Code Online (Sandbox Code Playgroud)

这是我的迁移文件: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)),
            ],
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

Mysql 版本 : mysql Ver 14.14 Distrib 5.5.53, for linux2.6 (x86_64) using readline 5.1

那些关于 mysql 的包

在此处输入图片说明

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

Sub*_*ham 3

尝试从https://dev.mysql.com/downloads/connector/python/8.0.html安装 MySQL /Connector Python并使用以下命令进行安装。

pip install mysql-connector-python
Run Code Online (Sandbox Code Playgroud)

您可以在 seeting.py 中对 ENGINE 进行如下设置。

    DATABASES = {
    'default': {
        'NAME': 'user_data',
        'ENGINE': 'mysql.connector.django',
        'USER': 'mysql_user',
        'PASSWORD': 'password',
        'OPTIONS': {
          'autocommit': True,
        },
    }
}
Run Code Online (Sandbox Code Playgroud)

然后使用manage.py migrate 它进行迁移它对我有用,我希望对你也一样。