Het probleem is de migratie van Process.milestone als boolean-veld naar Process.milestone als externe sleutel. Postgres wacht niet tot een migratie mislukt op niet-casteerbare gegevens. Het wil een regel om de tafel van tevoren te wijzigen.
Als u geen enkele vorm van gegevensmigratie tussen twee velden van plan bent, is de eenvoudigste optie om het veld gewoon te verwijderen en toe te voegen. In dit specifieke geval zou dit betekenen dat de bewerkingen als volgt moeten worden gewijzigd:
operations = [
migrations.RemoveField(
model_name='process',
name='milestone'
),
migrations.AddField(
model_name='process',
name='milestone',
field=models.ForeignKey(to='processes.Milestone'),
),
migrations.AlterModelOptions(
name='process',
options={'ordering': ['milestone', 'sequence'], 'verbose_name_plural': 'processes'},
)
]