Mam urządzenie seed_data.json
, na którym mam moje dane początkowe.Django: loaddata do aktualizacji danych
Czasami dodawam nowe dane do tych urządzeń i ponownie je ładuję, co prawidłowo aktualizuje moje dane.
Jednak teraz chcę usunąć z niego niektóre dane. Więc moje seed_data.json
modyfikowany, na przykład, miałem coś takiego:
{"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},
# ...
który stał:
{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 1},
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 2},
# ...
Ale ja dostaję:
django.db.utils.IntegrityError: Problem installing fixture .....\seed_data.json
Could not load catalog.Product(pk=2): column name is not unique
Nie ma problemu z dodawaniem niektórych danych, ale przy próbie ich usunięcia występują konflikty z kluczami podstawowymi.
Jak mogę osiągnąć to, co próbuję zrobić?
W związku z tym, aby faktycznie zmienić początkowe dane aplikacji, muszę wyczyścić moją bazę danych? – Ellone
Tak, oczywiście. Dlatego nazywa się to "początkowym". –
Tak, ale czasami, gdy aktualizujemy aplikację, są pewne zmiany w danych początkowych. Wyczyszczenie bazy danych spowoduje również usunięcie danych, które nie są początkowe. Pewnie mogę korzystać z interfejsu administratora, ale chciałem zachować czysty klucz podstawowy na rekordach – Ellone