Django datadump и loaddata не работают из-за ошибки фикстуры - PullRequest
0 голосов
/ 30 октября 2019

Вот как я пытался сбросить базу данных mysql:

 python3 manage.py dumpdata > dumpdata.json

Затем я попытался перезагрузить ее:

python3 manage.py loaddata dumpdata.json

Это ошибка, которую я получаю:

json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 226398200 (char 226398199)

django.core.serializers.base.DeserializationError: Problem installing fixture '/home/dumpdata.json': 

1 Ответ

0 голосов
/ 30 октября 2019

Обычный случай, когда вы печатаете что-то во время повышения уровня вашего приложения. Те вещи, которые вы печатаете, в конечном итоге окажутся в вашем fixture.json, что испортит структуру JSON.

Чтобы сделать вещи более читабельными, вы можете использовать:

python3 manage.py dumpdata --indent 4 --natural-primary --natural-foreign -e contenttypes -e auth.Permission -e sessions > dumpdata.json

Некоторые подробности:

  • --indent 4 "префиксирует" ваш вывод JSON, будет намного проще проверить ваши данные
  • -e sessions удалит sessionданные приложения. То же самое для contenttype, который часто путает, admin и auth.Permission
  • --natural-primary --natural-foreign будут использовать некоторые более естественные PK вместо идентификаторов (например, когда у вас есть несколько полей unique=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...