Ich habe eine Vorrichtung seed_data.json
, auf der ich meine Ausgangsdaten habe.Django: Ladedaten zum Aktualisieren von Daten
Manchmal füge ich neue Daten in diese Fixtures ein und lade sie neu, wodurch meine Daten korrekt aktualisiert werden.
Allerdings möchte ich jetzt einige Daten daraus entfernen. So modifizierte ich meine seed_data.json
, zum Beispiel, hatte ich so etwas:
{"fields": {"name": "Field 0"},"model": "catalog.product","pk": 1},
{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 2},
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 3},
# ...
Das wurde:
{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 1},
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 2},
# ...
Aber ich bin immer:
django.db.utils.IntegrityError: Problem installing fixture .....\seed_data.json
Could not load catalog.Product(pk=2): column name is not unique
Es gibt also kein Problem beim Hinzufügen von Daten, aber beim Versuch, einige Daten zu entfernen, gibt es Konflikte mit den Primärschlüsseln.
Wie kann ich erreichen, was ich versuche zu tun?
SO, um die Ausgangsdaten der Anwendung tatsächlich zu ändern, muss ich meine Datenbank löschen? – Ellone
Ja natürlich. Deshalb heißt es "initial". –
Ja, aber manchmal, wenn wir eine Anwendung aktualisieren, gibt es einige Änderungen an den ursprünglichen Daten. Durch das Löschen der Datenbank werden auch Daten entfernt, die nicht initial sind. Sicher kann ich die Admin-Schnittstelle verwenden, aber ich wollte sauber Primärschlüssel auf Aufzeichnungen halten – Ellone