Загрузка данных из файла Json в PostgresSql вызывает: ОШИБКА «Дублирующее значение ключа нарушает уникальное ограничение - уже существует». - PullRequest
0 голосов
/ 12 апреля 2019

Я развертываю свой сайт Django в Google Cloud.Одним из шагов является изменение базы данных на postgresSQL.Поскольку я использую SqlLite локально, я хотел перенести всю базу данных в postgresSql.Я следовал интерактивному руководству, в котором вы сначала записали свои данные, а затем изменили базу данных в settings.py на новую базу данных.Я сделал все до этой команды;

    python manage.py loaddata datadump.json

где datadump.json - это дамп базы данных из SQLITE.Теперь я застрял с этой ошибкой

      django.db.utils.IntegrityError: Problem installing fixtur, Could not 
    load users.Profile(pk=3): duplicate key value violates unique 
    constraint "users_profile_user_id_key" DETAIL:  Key (user_id)=(1) already exists.

, и я понятия не имею, что делать.Некоторые ответы, которые я искал, например, такие:

дублирующий ключ postgresql нарушает уникальное ограничение

AND

Django admin "значение дублирующего ключа нарушаетуникальное ограничение "Ключ (user_id) = (1) уже существует

не помогли, так как я не могу понять, что происходит.Я использовал MySQL 6 лет назад, но я не могу этого понять.

Мне удалось запустить несколько команд SQL из онлайн-ресурсов и создать это для моей базы данных:

! https://imgur.com/a/qQNLEs7

Я следовал этим инструкциям:

https://medium.com/@aaditya.chhabra/how-to-use-postgresql-with-your-django-272d59d28fa5

https://www.shubhamdipt.com/blog/django-transfer-data-from-sqlite-to-another-database/

1 Ответ

0 голосов
/ 12 апреля 2019
  1. Удалить базу данных
  2. создать новую и запустить миграцию

    python manage.py migrate

И попробоватьимпорт данных из файла json с использованием,

python manage.py loaddata datadump.json

Ошибки вызваны объектом суперпользователя в базе данных, которую вы создали с помощью команды createuperuser.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...