Добавить столбец базы данных Heroku
"Спокойной ночи"
У меня есть проект, выполненный на Python и Django, и сегодня я добавил еще одну таблицу модели и добавил столбец вручную, и он сработал в среде разработки.
Но при развертывании на Heroku, Heroku не может найти этот созданный вручную столбец и возвращает ошибку "столбец не существует" .
Как вручную добавить колонку в базу данных Heroku?
Я не уверен, что вам следует управлять таблицами вручную, но если вы должны делать это вручную и вы используете Heroku Postgres, вы можете использовать Heroku CLI для открытия psql
сессии:
heroku pg:psql
Обратите внимание, что вам понадобится PostgreSQL, установленный локально. Более подробную информацию смотрите в docs.
Heroku не может найти этот созданный вручную столбец
Конечно, не может. Вы создали его на другой базе данных.
Вручную изменять схему базы данных - плохая идея, особенно если вы используете фреймворк вроде Django, в который встроены миграции баз данных. Измените свои модели и создайте миграцию с помощью python manage.py makemigrations
, или создайте миграцию вручную. Протестируйте миграцию и зафиксируйте ее, когда она вас устроит.
Затем сделайте push на Heroku и запустите миграции там, выполнив heroku run python manage.py migrate
. Некоторым пользователям нравится устанавливать это как задачу release task, чтобы она выполнялась автоматически.