Ich bin gerade auf nen kleinen Fehler gestoßen, den ich nicht ganz verstehe.
Folgende Situation:
Meine models.py VORHER:
Code: Alles auswählen
class Video(models.Model):
title = models.CharField(max_length=150)
description = models.TextField(blank=True)
Code: Alles auswählen
class Video(models.Model):
title = models.CharField(max_length=150)
description = models.TextField(blank=True)
source_video = models.URLField(default="blabla")
makemigrations spuckt mir dann allerdings folgende Fehlermeldung aus:
Code: Alles auswählen
You are trying to add a non-nullable field 'source_video' to video without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
Select an option:
1. Wieso brauch ich beim hinzufügen auf einmal ein default value, während ich beim allerersten Mal keines gebraucht hätte?
2. Angenommen ich habe schon 5 Einträge in der Datenbank...wird das "blabla" dann auch für diese Einträge übernommen insofern Sie bisher leer waren?
3. Was soll das? Welchen Sinn hat das?
4. Kann ich einfach ein default-value setzen...migrate-en und dann das default wieder entfernen? Oder widerspricht das irgendwelchen Programmier-Ethik-Richtlinien?
Ihr seht schon es geht hier nicht darum dass ich Probleme mit Python/Django hätte, ich verstehe einfach nur nicht genau welchen Sinn das hat. Hängt ja anscheinend mit der DB zusammen?!
Vielen Dank schonmal!
P.S. Und ja klar, könnte ich einfach die DB löschen und "neu" migrate-en, aber wenn ich dann doch mal ein Produktivsystem habe, muss ich es ja auch lösen können.