Problemem jest migracja z Process.milestone jako pola logicznego do Process.milestone jako klucza obcego. Postgres nie czeka, aż migracja zakończy się niepowodzeniem na danych, których nie można przesyłać. Chce regułę, aby wcześniej zmienić tabelę.
Jeśli nie planujesz żadnej migracji danych między dwoma polami, najłatwiejszą opcją jest po prostu upuszczenie i dodanie pola. W tym konkretnym przypadku oznaczałoby to zmianę operacji w następujący sposób:
Operacjeoperations = [
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'},
)
]