Opened 9 years ago
Last modified 9 years ago
#25216 closed Bug
DB migration bug in 1.8.3 when creating ManyToMany relation. — at Initial Version
Reported by: | Chen | Owned by: | nobody |
---|---|---|---|
Component: | Migrations | Version: | 1.8 |
Severity: | Normal | Keywords: | migrate |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Hi,
I have the following very simple code:
from django.contrib.auth.models import User
class Agent(models.Model):
name = models.CharField(max_length=100)
users = models.ManyToManyField(User, related_name='accessible_agents', default=[])
and when I have an empty database, and do python manage.py migrate.
It gives me error, and I tested on 1.7.8, it works fine.
Operations to perform:
Synchronize unmigrated apps: staticfiles, download, messages
Apply all migrations: admin, auth, contenttypes, sessions
Synchronizing apps without migrations:
Creating tables...
Creating table download_agent
Running deferred SQL...
Traceback (most recent call last):
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/db/backends/utils.py", line 62, in execute
return self.cursor.execute(sql)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/db/backends/mysql/base.py", line 124, in execute
return self.cursor.execute(query, args)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/cursors.py", line 220, in execute
self.errorhandler(self, exc, value)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorvalue
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/cursors.py", line 209, in execute
r = self._query(query)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/cursors.py", line 371, in _query
rowcount = self._do_query(q)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/cursors.py", line 335, in _do_query
db.query(q)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (1005, "Can't create table 'portal_aperture.#sql-403_b3' (errno: 150)")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/core/management/init.py", line 338, in execute_from_command_line
utility.execute()
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/core/management/init.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/core/management/base.py", line 393, in run_from_argv
self.execute(*args, cmd_options)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/core/management/base.py", line 444, in execute
output = self.handle(*args, options)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 179, in handle
created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 317, in sync_apps
cursor.execute(statement)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/db/utils.py", line 97, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/utils/six.py", line 658, in reraise
raise value.with_traceback(tb)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/db/backends/utils.py", line 62, in execute
return self.cursor.execute(sql)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/django/db/backends/mysql/base.py", line 124, in execute
return self.cursor.execute(query, args)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/cursors.py", line 220, in execute
self.errorhandler(self, exc, value)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorvalue
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/cursors.py", line 209, in execute
r = self._query(query)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/cursors.py", line 371, in _query
rowcount = self._do_query(q)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/cursors.py", line 335, in _do_query
db.query(q)
File "/srv/company/virtualenvs/portal_aperture/lib/python3.4/site-packages/MySQLdb/connections.py", line 280, in query
_mysql.connection.query(self, query)
django.db.utils.OperationalError: (1005, "Can't create table 'portal_aperture.#sql-403_b3' (errno: 150)")
Thanks.