#26535: Possible bug - when migrating and removing unique constraint.
-------------------------------+--------------------------------------
Reporter: jenlu | Owner: nobody
Type: Uncategorized | Status: new
Component: Migrations | Version: 1.9
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Changes (by timgraham):
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Old description:
> Possible bug - when migrating and removing unique constraint.
>
> Postgres 9.4.1 / 9.5.7 + Django 1.9.5 + psycopg 2.6.1
>
> ——
>
> My setup is models/database representing sports events, and with
> competitors in different events.
>
> Each competitor in different sports has for their model/class:
>
> class Meta:
> unique_together = ('event', 'number')
>
> i.e. ensure a unique starting number in an event, now we are relaxing
> (removing this constraint)
> this but having issues when migrating.
>
> The above is represented in postgress as a UNIQUE constraint
> and in all models.py the above constraint is as-above — but in pg it is
> represented as
>
> (i) UNIQUE (event_id, number)
>
> and sometimes as...
>
> (ii) UNIQUE (number, event_id)
>
> …and now when doing migration - for all tables where it is represented as
> (i) everything
> goes well, but in tables where (ii) the following error:
>
> File "/Users/XXX/.virtualenvs/ssi195_2711/lib/python2.7/site-
> packages/django/db/migrations/migration.py", line 123, in apply
> operation.database_forwards(self.app_label, schema_editor, old_state,
> project_state)
> File "/Users/XXX/.virtualenvs/ssi195_2711/lib/python2.7/site-
> packages/django/db/migrations/operations/models.py", line 359, in
> database_forwards
> getattr(new_model._meta, self.option_name, set()),
> File "/Users/XXX/.virtualenvs/ssi195_2711/lib/python2.7/site-
> packages/django/db/backends/base/schema.py", line 318, in
> alter_unique_together
> self._delete_composed_index(model, fields, {'unique': True},
> self.sql_delete_unique)
> File "/Users/XXX/.virtualenvs/ssi195_2711/lib/python2.7/site-
> packages/django/db/backends/base/schema.py", line 347, in
> _delete_composed_index
> ", ".join(columns),
> ValueError: Found wrong number (0) of constraints for
> match_ppc_ppccompetitor(event_id, number)
>
> So seems to need to do some migrations manually and no biggie - but yet
> strange and unsure if Django or pg issue….
>
> / Jens
New description:
Possible bug - when migrating and removing unique constraint.
Postgres 9.4.1 / 9.5.7 + Django 1.9.5 + psycopg 2.6.1
——
My setup is models/database representing sports events, and with
competitors in different events.
Each competitor in different sports has for their model/class:
{{{
class Meta:
unique_together = ('event', 'number')
}}}
i.e. ensure a unique starting number in an event, now we are relaxing
(removing this constraint)
this but having issues when migrating.
The above is represented in postgress as a UNIQUE constraint
and in all models.py the above constraint is as-above — but in pg it is
represented as
(i) UNIQUE (event_id, number)
and sometimes as...
(ii) UNIQUE (number, event_id)
…and now when doing migration - for all tables where it is represented as
(i) everything
goes well, but in tables where (ii) the following error:
{{{
File "/Users/XXX/.virtualenvs/ssi195_2711/lib/python2.7/site-
packages/django/db/migrations/migration.py", line 123, in apply
operation.database_forwards(self.app_label, schema_editor, old_state,
project_state)
File "/Users/XXX/.virtualenvs/ssi195_2711/lib/python2.7/site-
packages/django/db/migrations/operations/models.py", line 359, in
database_forwards
getattr(new_model._meta, self.option_name, set()),
File "/Users/XXX/.virtualenvs/ssi195_2711/lib/python2.7/site-
packages/django/db/backends/base/schema.py", line 318, in
alter_unique_together
self._delete_composed_index(model, fields, {'unique': True},
self.sql_delete_unique)
File "/Users/XXX/.virtualenvs/ssi195_2711/lib/python2.7/site-
packages/django/db/backends/base/schema.py", line 347, in
_delete_composed_index
", ".join(columns),
ValueError: Found wrong number (0) of constraints for
match_ppc_ppccompetitor(event_id, number)
}}}
So seems to need to do some migrations manually and no biggie - but yet
strange and unsure if Django or pg issue….
/ Jens
--
Comment:
Could you provide a sample project that reproduces the issue?
--
Ticket URL: <https://code.djangoproject.com/ticket/26535#comment:1>
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/063.426912ac6ad9444542e26abc1eb27383%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.