Дублирующее значение ключа Heroku нарушает уникальное ограничение (django)

#python #django #heroku

#python #django #heroku

Вопрос:

Сегодня я впервые развернул свое приложение django на Heroku (следуя этому руководству).

Проблема в том, что когда я хочу изменить или добавить что-то в базу данных, я получаю сообщение об ошибке целостности, в котором говорится:

 duplicate key value violates unique constraint "app_professore_pkey"
  

Где Professore — это имя модели, которую я пытался изменить.

Я немного поискал в Интернете и увидел, что, вероятно, это связано с тем, что я разработал приложение на своем ПК с использованием SQLite, а теперь на Heroku оно использует PostgreSQL, и эти 2 базы данных работают по-разному. На самом деле, у меня нет большого опыта работы с базами данных (почти нет опыта), поэтому я не знаю, как это исправить… Может быть, что-то изменить в модели Professore? Или вводить что-то в консоли Heroku?

Это экран ошибки, который я получаю, если вам это нужно, чтобы помочь мне 🙂

Заранее спасибо и скажите мне, если я чего-то не понял (я тоже новичок в StackOverflow)

Ответ №1:

Вам необходимо повторно синхронизировать поля первичного ключа в Postgres.

Вы можете получить доступ к своей базе данных с помощью этой команды

python manage.py dbshell

Просто проверьте имя таблицы your_database_name=# dt

выполнение приведенной ниже команды

 SELECT setval('table_name_id_seq', (SELECT MAX(id) FROM table_name) 1);
  

Комментарии:

1. Спасибо, и знаете ли вы, где я могу найти your_database_name , table_name_id_seq и table name На Heroku?

2. Чтобы получить доступ к базе данных, запустите python manage.py dbshell, вы перейдете в db, затем введите dt, вы получите все имена таблиц на консоли.