Il problema è la migrazione da Process.milestone come campo booleano a Process.milestone come chiave esterna. Postgres non aspetta che una migrazione fallisca sui dati non trasferibili. Vuole una regola per modificare la tabella in anticipo.
Se non intendi alcun tipo di migrazione dei dati tra due campi, l'opzione più semplice è semplicemente eliminare e aggiungere il campo. In questo caso specifico, significherebbe modificare le operazioni come segue:
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'},
)
]