Hier sind mein aktueller Status:Fehler beim zurück zur vorherige Migration Roll
mainapp
[X] 0001_initial
[X] 0002_authorprofile_uuid
[X] 0003_auto_20151107_1243
[X] 0004_article_approved
[X] 0005_auto_20151129_0950
[X] 0006_article_category
[X] 0007_auto_20160501_1601
ich jedoch zurück zu 0005. gehen will, wenn ich /manage.py migrate mainapp 0005_auto_20151129_0950
laufen bekomme ich die Fehler ValueError: The database backend does not accept 0 as a value for AutoField.
Dies ist ein Fehler Ich habe in models.py behoben, also möchte ich zurück zu 0005 gehen und neu starten und die Migrationen erneut durchführen.
class Article(models.Model):
category = models.ForeignKey(Category, default = 1) #trying to add this and set default value. It was first set to 0 but changed it to 1 after it failed
Entschuldigung, jetzt habe ich ein besseres Verständnis des echten Problems. Nachdem Sie das Feld von Auto zu einem ForeignKey ändern, scheinen Sie am Ende eine 0 in dieses Feld eingefügt haben. Mysql zum Beispiel erlaubt nicht 0 in Auto-Feldern, wenn Sie versuchen, Null einzufügen, fügt es den nächsten Wert für die automatische Erhöhung ein. Also ist das Problem nicht im Code, sondern Daten oder das ist, was es mir scheint. – e4c5
@ e4c5 grundsätzlich 0007 denkt, das Feld ist in der Datenbank, aber es ist eigentlich nicht. Da ist keine Spalte. Also, wenn ich den Standardwert ändere, kann es nicht, weil die Spalte nicht existiert. wenn ich versuche, das Feld fallen zu lassen, kann es nicht, weil es nicht existiert – User
@ e4c5 was ist, wenn ich nur eine Spalte über SQL-Befehle hinzufügen und dann migrieren, um es fallen zu lassen? dann wird der Tropfen funktionieren. – User