Opened 10 years ago
Closed 10 years ago
#25621 closed Bug (needsinfo)
AlterField to ForeignKey reverse migration doesn't drop the constraint
| Reported by: | Marius Gedminas | Owned by: | nobody |
|---|---|---|---|
| Component: | Migrations | Version: | 1.8 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
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).
Change History (3)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
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.
comment:3 by , 10 years ago
| Resolution: | → needsinfo |
|---|---|
| Status: | new → closed |
What database are you using? Could you provide a complete minimal project that reproduces it?