[Django] #34298: drop constraint if exists

142 views
Skip to first unread message

Django

unread,
Jan 27, 2023, 5:33:49 AM1/27/23
to django-...@googlegroups.com
#34298: drop constraint if exists
-------------------------------------+-------------------------------------
Reporter: sahaliyev | Owner: nobody
Type: New | Status: new
feature |
Component: Core | Version: 4.1
(Management commands) |
Severity: Normal | Keywords:
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
Hi there,

Today encountered a problem, where Django migrate fails to drop constraint
that actually does not exists.
Here is the scenario.
I created constraint via migration and then go to db and manually drop
constraint and also changed my code.
Here, new migration file is generated to drop constraint, however,
constraint already dropped.
In this case, migration is giving error.
It would be great just try to drop constraint and if not exists just pass.
As PostgreSQL has this functionality, drop constraint if exists.
Django can also use this.

--
Ticket URL: <https://code.djangoproject.com/ticket/34298>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Jan 27, 2023, 5:48:11 AM1/27/23
to django-...@googlegroups.com
#34298: drop constraint if exists
-------------------------------------+-------------------------------------
Reporter: sahaliyev | Owner: nobody
Type: New feature | Status: closed
Component: Core (Management | Version: 4.1
commands) |
Severity: Normal | Resolution: wontfix
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 Mariusz Felisiak):

* status: new => closed
* resolution: => wontfix


Comment:

Thanks for this ticket, however when you mix manual changes to your
database schema and Django migrations you do it at your own risk. You can
always use the `--fake` option to mark a migration as already applied.

> It would be great just try to drop constraint and if not exists just
pass.

I disagree. The migrations framework should fail loudly when it encounters
an unexpected database state.

--
Ticket URL: <https://code.djangoproject.com/ticket/34298#comment:1>

Reply all
Reply to author
Forward
0 new messages