Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)

I have google this question . there plenty of similar problems , but i can't find proper answer.

This is details of error Log :

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"))

This is settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': '*****',
        'PASSWORD': '****',
        'HOST': '**.***.***.**',
        'PORT': '3306',
    }
}

This is my 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")

This is my migrations file: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 version : mysql Ver 14.14 Distrib 5.5.53, for linux2.6 (x86_64) using readline 5.1

Those the pkgs about mysql

enter image description here

Who has ideas for this problem , Thanks for any help.

like image 814
Cyrus Avatar asked Apr 03 '18 07:04

Cyrus


2 Answers

Try to Install MySQL /Connector Python from https://dev.mysql.com/downloads/connector/python/8.0.html and also install using below command.

pip install mysql-connector-python

You can make settings for ENGINE in seeting.py as below.

    DATABASES = {
    'default': {
        'NAME': 'user_data',
        'ENGINE': 'mysql.connector.django',
        'USER': 'mysql_user',
        'PASSWORD': 'password',
        'OPTIONS': {
          'autocommit': True,
        },
    }
}

Then migrate using manage.py migrate It worked for me I hope that same for you.

like image 106
Subham Avatar answered Sep 17 '22 20:09

Subham


Try to change the version of your Django and mysqlclient, I now use mysqlclient==1.3.12 and Django==2.0.5.

like image 23
hhuua Avatar answered Sep 18 '22 20:09

hhuua