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 31255,Migrations create a redundant RemoveField operation when deleting 2 models with related fields.,Panagis Alisandratos,,"{{{ class ModelA(models.Model): field1 = models.BooleanField(default=False) class ModelB(models.Model): another_field1 = models.TextField(blank=True) field1 = models.BooleanField(default=False) related_field = models.ForeignKey(ModelA, on_delete=models.CASCADE) class ModelC(models.Model): another_field1 = models.TextField(blank=True) related_field = models.ForeignKey(ModelA, on_delete=models.CASCADE) }}} Removing {{{ModelB}}} and {{{ModelC}}} yields the following migration: {{{ class Migration(migrations.Migration): dependencies = [ ('analyzer', '0149_modela_modelb_modelc'), ] operations = [ migrations.RemoveField( model_name='modelc', name='related_field', ), migrations.DeleteModel( name='ModelB', ), migrations.DeleteModel( name='ModelC', ), ] }}} It is unclear whether the {{{RemoveField}}} operation is redundant or if a {{{RemoveField}}} operation for {{{ModelB}}} is missing. I've confirmed that the {{{RemoveField}}} operation for {{{ModelB}}} is part of the unoptimized operations set.",Cleanup/optimization,new,Migrations,dev,Normal,,"migration,optimizer",Markus Holtermann Andriy Sokolovskiy Shai Berger Ülgen Sarıkavak,Accepted,0,0,0,0,0,0