Проект Django на исходных данных Heroku, ошибка целостности

Я развернул свой проект в Heroku и в настоящее время пытаюсь загрузить дамп данных из локальной базы данных sqlite в базу данных Heroku. Удаленная база данных чистая и нетронутая, за исключением первоначальной команды миграции. Я пробовал следующие комбинации дампа, но все они возвращали ошибку

python manage.py dumpdata --exclude contenttypes --> data.json
python manage.py dumpdata --exclude auth.permission --exclude contenttypes --indent 2 > data.json
python manage.py dumpdata --exclude auth.permission --exclude contenttypes --exclude auth.user  --indent 2 > data.json

и ошибка:

django.db.utils.IntegrityError: проблема с установкой приспособления '/app/data.json': не удалось загрузить wellsurfer.Profile(pk=6): повторяющееся значение ключа нарушает уникальное ограничение "wellsurfer_profile_user_id_key" DETAIL: Key (user_id)=(1 ) уже существует.

Я хотел бы опубликовать файл json здесь, но он составляет около 120 000 строк. Но я могу предоставить конкретные порции, если это необходимо. Ошибка ясно говорит, что ключ существует, но база данных вначале чиста. Очевидно, я делаю что-то очень простое неправильно, и я надеюсь, что вы можете указать мне правильное направление. Я безуспешно пробовал рекомендации, которые нашел в Stackoverflow. Как управлять данными загрузки .py в Django


person bachree    schedule 12.06.2020    source источник


Ответы (1)


У меня была такая же проблема, и это то, что сработало для меня

источник (локальный sqlite)

python manage.py dumpdata --natural-foreign --indent 4 > datadump.json

(это будет включать все, даже приложение авторизации/пользователей)

пункт назначения (heroku postgres)

python manage.py migrate
python manage.py shell
>>> from django.contrib.contenttypes.models import ContentType
>>> ContentType.objects.all().delete()
>>> quit()

Наконец, выполните следующую команду, чтобы загрузить данные json:

python manage.py loaddata datadump.json
person Pablo Rodriguez    schedule 25.06.2020