So habe ich ein Modell in meinem Django-Projekt (zum Beispiel Argumente 'app' genannt);Django Migrations Entfernen Feld
class ModelA(models.Model):
fieldA = models.IntegerField(default=0)
und ich kann Python manage.py Makemigrations App ausführen; Das gibt mir
Migrations for 'app':
app/migrations/0001_initial.py
- Create model ModelA
Wenn ich dann ein neues Feld zu ModelA hinzufügen, so wie es aussieht;
class ModelA(models.Model):
fieldA = models.IntegerField(default=0),
fieldB = models.IntegerField(default=1)
und dann makemigrations wieder laufen, bekomme ich;
Migrations for 'app':
app/migrations/0002_auto_20170529_1737.py
- Remove field fieldA from modela
- Add field fieldB to modela
Die automatisch generierte Datei sichert dies ab;
operations = [
migrations.RemoveField(
model_name='modela',
name='fieldA',
),
migrations.AddField(
model_name='modela',
name='fieldB',
field=models.IntegerField(default=1),
),
]
Warum entfernt es FeldA?
Mein Verständnis war, dass es nur Skriptänderungen an den Modellen, d. H. That fieldB wurde hinzugefügt werden.
* facepalm * Vielen Dank, sehr! Das war so frustrierend. – coagulantmonkey