PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Die Django 1.8-Migration kann die Spalten-ID nicht in eine ganze Zahl umwandeln

Das Problem ist die Migration von Process.milestone als boolesches Feld zu Process.milestone als Fremdschlüssel. Postgres wartet nicht darauf, dass eine Migration bei nicht umwandelbaren Daten fehlschlägt. Es will eine Regel, um die Tabelle im Voraus zu ändern.

Wenn Sie keine Art von Datenmigration zwischen zwei Feldern beabsichtigen, besteht die einfachste Option darin, das Feld einfach zu löschen und hinzuzufügen. In diesem speziellen Fall würde dies bedeuten, die Operationen wie folgt zu ändern:

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'},
    )
]