#25216: DB migration bug in 1.8.3 when creating ManyToMany relation.
----------------------------+--------------------------------------
Reporter: cx44yale | Owner: nobody
Type: Bug | Status: new
Component: Migrations | Version: 1.8
Severity: Normal | Resolution:
Keywords: migrate | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------+--------------------------------------
Description changed by cx44yale:
Old description:
> Hi,
> I am using python version 3.4 and django 1.8.3, 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.
New description:
Hi,
I am using python version 3.4 and django 1.8.3, I have the following very
simple code:
{{{
from django.contrib.auth.models import User
class Agent(models.Model):
name = models.CharField(max_length=100, primary_key=True)
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.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/25216#comment:5>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/066.33d9a2d0af923e97568631279bc3abe5%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.