#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.

Reply via email to