﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
25621	AlterField to ForeignKey reverse migration doesn't drop the constraint	Marius Gedminas	nobody	"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)."	Bug	closed	Migrations	1.8	Normal	needsinfo			Unreviewed	0	0	0	0	0	0
