Answer the question
In order to leave comments, you need to log in
How to get rid of error 1064 You have an error in your SQL syntax?
You need to create models in Django based on an existing mysql database. The database is hosted on heroku, created using the CleardDB plugin. I create models using the commands:
python manage.py inspectdb
python manage.py inspectdb> models.py
python manage.py migrate
python manage.py migrate
I get an error:_mysql_exceptions.ProgrammingError: (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")
(diploma_project) C:\Users\admin\diploma_project\geomagnet>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions, task1
Running migrations:
Traceback (most recent call last):
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
return self.cursor.execute(sql)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute
return self.cursor.execute(query, args)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\cursors.py", line 247, in execute
res = self._query(query)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\cursors.py", line 412, in _query
rowcount = self._do_query(q)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\cursors.py", line 375, in _do_query
db.query(q)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\connections.py", line 276, in query
_mysql.connection.query(self, query)
_mysql_exceptions.ProgrammingError: (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")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\migrations\recorder.py", line 67, in ensure_schema
editor.create_model(self.Migration)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\base\schema.py", line 307, in create_model
self.execute(sql, params or None)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\base\schema.py", line 137, in execute
cursor.execute(sql, params)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\utils.py", line 99, in execute
return super().execute(sql, params)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\utils.py", line 67, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
return self.cursor.execute(sql)
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute
return self.cursor.execute(query, args)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\connections.py", line 50, in defaulterrorhandler
raise errorvalue
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\cursors.py", line 247, in execute
res = self._query(query)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\cursors.py", line 412, in _query
rowcount = self._do_query(q)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\cursors.py", line 375, in _do_query
db.query(q)
File "C:\Users\admin\diploma_project\lib\site-packages\MySQLdb\connections.py", line 276, in query
_mysql.connection.query(self, query)
django.db.utils.ProgrammingError: (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")
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\admin\diploma_project\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Users\admin\diploma_project\lib\site-packages\django\core\management\__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\admin\diploma_project\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\admin\diploma_project\lib\site-packages\django\core\management\base.py", line 364, in execute
output = self.handle(*args, **options)
File "C:\Users\admin\diploma_project\lib\site-packages\django\core\management\base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "C:\Users\admin\diploma_project\lib\site-packages\django\core\management\commands\migrate.py", line 234, in handle
fake_initial=fake_initial,
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\migrations\executor.py", line 91, in migrate
self.recorder.ensure_schema()
File "C:\Users\admin\diploma_project\lib\site-packages\django\db\migrations\recorder.py", line 69, 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"))
Answer the question
In order to leave comments, you need to log in
I think this is the case: the project was created a relatively long time ago, and you are trying to update it and update dependencies. There are no difficulties with the code base, but cleardb seems to be stuck in the past and works on the basis of ancient mysql 5.5, support from which was cut out either in version 2.0 or 2.1 of Jungi. Hence the misunderstandings: dzhanga generates modern SQL, which the old Muscle is not able to parse.
The easiest way to fix this particular error is to lure patching jung at the time the project is launched:
# settings.py
from django.db.backends.mysql.base import DatabaseWrapper
DatabaseWrapper.data_types['DateTimeField'] = 'datetime'
But we must understand that this is just a crutch to quickly start. Therefore, then it is still better to update the database engine.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question