Проблемът е миграцията от Process.milestone като булево поле към Process.milestone като външен ключ. Postgres не чака миграцията да се провали върху данни, които не могат да се предават. Той иска правило за промяна на таблицата предварително.
Ако не възнамерявате каквато и да е миграция на данни между две полета, най-лесният вариант е просто да премахнете и добавите полето. В този конкретен случай това би означавало промяна на операциите, както следва:
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'},
)
]