Как полностью сбросить базу данных Postgres на Heroku? - PullRequest
0 голосов
/ 09 июля 2019

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

Когда я запускаю команду heroku run python manage.py makemigrations, я получаю сообщение об ошибке

Вы пытаетесь добавить необнуляемое поле ....

Почему я получаю это сообщение, когда уничтожил старую базу данных?

1 Ответ

1 голос
/ 10 июля 2019

Прежде всего, вы никогда не должны запускать manage.py makemigrations в Heroku.

К тому времени, когда ваш код туда попадет, не должно быть никаких изменений модели для генерации новых миграций.Запустите makemigrations локально , чтобы создать файлы миграции.Запустите migrate локально и в Heroku, чтобы применить миграции к вашей базе данных.

Теперь, когда это не так, это, вероятно, вызвано существующими миграциями файлов , а не чем-либо в вашей базе данных.Если вы действительно хотите начать все сначала, вы можете удалить файлы из каждой директории migrations/ вашего приложения.

Наконец, нет необходимости уничтожать и заново предоставлять базу данных для ее сброса.Вместо этого вы можете использовать heroku pg:reset:

Пользователю PostgreSQL, которому назначена ваша база данных, не разрешено создавать или удалять базы данных.Чтобы удалить и восстановить базу данных, используйте pg:reset.

...