[Django] #25621: AlterField to ForeignKey reverse migration doesn't drop the constraint

16 views
Skip to first unread message

Django

unread,
Oct 28, 2015, 3:35:11 AM10/28/15
to django-...@googlegroups.com
#25621: AlterField to ForeignKey reverse migration doesn't drop the constraint
----------------------------+--------------------
Reporter: mgedmin | Owner: nobody
Type: Bug | Status: new
Component: Migrations | Version: 1.8
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
----------------------------+--------------------
I'm changing a data model that had a
{{{
source_id = CharField()
}}}
field to a
{{{
source_resolution = ForeignKey(CommitteeResolution, db_column='source_id',
to_field='source_id')
}}}
so that my database schema remains the same, but now the column is a
foreign key reference to another table.

I've adjusted the migrations file manually to avoid dropping/re-creating
columns. The migration looks like this now:
{{{
operations = [
migrations.AlterField(
model_name='suggestion',
name='source_id',
field=models.ForeignKey(db_column=b'source_id',
to_field=b'source_id', to='mps_v2.CommitteeResolution'),
preserve_default=False,
),
migrations.RenameField(
model_name='suggestion',
old_name='source_id',
new_name='source_resolution',
),
migrations.AlterUniqueTogether(
name='suggestion',
unique_together=set([('source_resolution', 'source_index')]),
),
]
}}}

The forward migration is exactly as I expect it to be:

{{{
$ django-admin sqlmigrate mps_v2 0029
BEGIN;
ALTER TABLE `mps_v2_suggestion` ADD CONSTRAINT
`D58bb2cf0b1407c8c24fa06b0cc34f38` FOREIGN KEY (`source_id`) REFERENCES
`mps_v2_committeeresolution` (`source_id`);

COMMIT;
}}}

I expect the reverse migration to drop the constraint.

It doesn't:

{{{
$ django-admin sqlmigrate mps_v2 0029 --backwards
}}}

(there's no output).

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

Django

unread,
Oct 28, 2015, 12:35:13 PM10/28/15
to django-...@googlegroups.com
#25621: AlterField to ForeignKey reverse migration doesn't drop the constraint
----------------------------+--------------------------------------

Reporter: mgedmin | Owner: nobody
Type: Bug | Status: new
Component: Migrations | Version: 1.8
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


Comment:

What database are you using? Could you provide a complete minimal project
that reproduces it?

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

Django

unread,
Oct 29, 2015, 2:52:06 AM10/29/15
to django-...@googlegroups.com
#25621: AlterField to ForeignKey reverse migration doesn't drop the constraint
----------------------------+--------------------------------------

Reporter: mgedmin | Owner: nobody
Type: Bug | Status: new
Component: Migrations | Version: 1.8
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
----------------------------+--------------------------------------

Comment (by mgedmin):

MySQL (unfortunately).

The actual project where I stumbled upon this is open source:
https://github.com/ManoSeimas/manoseimas.lt/blob/master/manoseimas/mps_v2/migrations/0029_link_suggestion_to_committeeresolution.py

I'll try to provide a minimal example.

--
Ticket URL: <https://code.djangoproject.com/ticket/25621#comment:2>

Django

unread,
Nov 17, 2015, 1:03:26 PM11/17/15
to django-...@googlegroups.com
#25621: AlterField to ForeignKey reverse migration doesn't drop the constraint
----------------------------+--------------------------------------
Reporter: mgedmin | Owner: nobody
Type: Bug | Status: closed
Component: Migrations | Version: 1.8
Severity: Normal | Resolution: needsinfo
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):

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


--
Ticket URL: <https://code.djangoproject.com/ticket/25621#comment:3>

Reply all
Reply to author
Forward
0 new messages