Django_ ejecuta error de instrucción de migración: versión del servidor MySQL para la sintaxis correcta para usar cerca de '(6) NOT NULL)' en li

 

El framework Django puede generar tablas de bases de datos basadas en clases de entidad, solo necesitamos ejecutar 

python manage.py makemigrations

python manage.py migrate 

Solo

Las funciones de estas dos instrucciones son las siguientes:

python manage.py makemigrations se usa para generar archivos de migración

python manage.py migrate se usa para generar archivos de base de datos basados ​​en archivos de migración

 

Durante mi ejecución, encontré los siguientes problemas:

La excepción anterior fue la causa directa de la siguiente excepción:

Rastreo (última llamada más reciente):
  archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ migrations \ recorder.py", línea 67, en sure_schema
    editor.create_model (self.Migration)
  Archivo "E : \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ backends \ base \ schema.py ", línea 307, en create_model
    self.execute (sql, params o None)
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ backends \ base \ schema.py ", línea 137, en ejecutar
    cursor.execute (sql, params)
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ backends \ utils.py ", línea 99, en execute
    return super (). execute (sql, params)
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ backends \ utils.py ", línea 67,en ejecución
    return self._execute_with_wrappers (sql, params, many = False, executeor = self._execute)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ backends \ utils.py", línea 76, en _execute_with_wrappers
    return ejecutor (sql, params, many, context)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ backends \ utils.py", línea 84, en _execute
    return self.cursor.execute (sql , parámetros)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ utils.py", línea 89, en __exit__
    raise dj_exc_value.with_traceback (traceback) desde exc_value
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ backends \ utils.py ", línea 82, en _execute
    return self.cursor.execute (sql)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ backends \ mysql \ base.py", línea 71, en ejecución
    return self.cursor.execute (query, args)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ pymysql \ cursors.py ", línea 170, en el
    resultado de la ejecución = self._query (query)
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ pymysql \ cursors.py " , línea 328, en _query
    conn.query (q)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ pymysql \ connections.py", línea 517, en la consulta
    self._affected_rows = self._read_query_result (unbuffered = unbuffered = )
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ pymysql \ connections.py", línea 732, en _read_query_result
    result.read ()
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ pymysql \ connections.py", línea 1075, en read
    first_packet = self.connection._read_packet ()
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ pymysql \ connections.py ", línea 684, en _read_packet
    packet.check_error ()
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ pymysql \ protocol.py ", línea 220, en check_error
    err.raise_mysql_exception (self ._data)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ pymysql \ err.py", línea 109, en raise_mysql_exception
    raise errorclass (errno, errval)
django.db.utils.ProgrammingError: (1064, "You tiene un error en su sintaxis SQL;consulte el manual que corresponde a la versión de su servidor MySQL para obtener la sintaxis correcta para usar cerca de '(6) NO
NULL) 'en la línea 1 ")

Durante el manejo de la excepción anterior, se produjo otra excepción:

Rastreo (última llamada más reciente):
  archivo "manage.py", línea 21, en <module>
    main ()
  Archivo "manage.py", línea 17, en main
    execute_from_command_line (sys.argv)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ core \ management \ __ init__.py ", línea 381, en execute_from_command_line
    utility.execute ()
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ core \ management \ __init__.py ", línea 375, en execute
    self.fetch_command (subcommand) .run_from_argv (self.argv)
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ core \ management \ base.py ", línea 323, en run_from_argv
    self.execute (* args, ** cmd_options)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ core \ management \ base.py", línea 364, en ejecutar
    salida = self.handle (* args, ** opciones)
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ core \ management \ base.py ", línea 83, en envuelto
    res = handle_func (* args, ** kwargs)
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ core \ management \ command \ migrate.py ", línea 234, en el identificador
    fake_initial = fake_initial,
  Archivo" E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ migrations \ executeor.py ", línea 91, en
    migrate self.recorder.ensure_schema ()
  Archivo "E: \ PYTHON_HOME \ Python37 \ lib \ site-packages \ django \ db \ migrations \ recorder.py", línea 69, en sure_schema
    raise MigrationSchemaMissing ("No se puede crear la tabla django_migrations (% s)"% exc)
django.db.migrations.exceptions.MigrationSchemaMissing: No se puede crear la tabla django_migrations ((1064, "Tiene un error en su sintaxis SQL; verifique el manual que corresponde a
la versión de su servidor MySQL para la sintaxis correcta para usar cerca de '(6) NOT NULL)' en la línea 1 "))
 

 

La causa del problema final es la versión de MySQL, 

Django 2.1 ya no es compatible con MySQL 5.5, debe ser la versión 5.6 o posterior

 

Ver la versión de MySQL 

https://www.cnblogs.com/wujf-myblog/p/9570870.html

Ejecutar en el cliente 

SELECCIONE LA VERSIÓN ();

 

Entonces hay dos opciones:

1) Reduce la versión de Django

Instrucciones para reducir la versión de Django:

pip install Django==2.0.0

2) actualización de MySQL

Por favor, consulte mi otro artículo:

https://blog.csdn.net/u010003835/article/details/97963117

520 artículos originales publicados · ganó 1146 · vistas 2.83 millones +

Supongo que te gusta

Origin blog.csdn.net/u010003835/article/details/97038434
Recomendado
Clasificación