如何在Heroku上完全重置Postgres数据库?

时间:2019-07-09 18:24:26

标签: django postgresql heroku heroku-postgres

我在Heroku上部署了一个学习项目。它提供了一个Postgres数据库。我对Django项目的模型进行了一些重大更改,并销毁了旧数据库并配置了一个新数据库,该数据库完全是空的,但它不能像空数据库一样工作。

运行命令heroku run python manage.py makemigrations时,出现错误消息

  

您正在尝试添加不可为空的字段。...

为什么我销毁旧数据库后会收到此消息?

1 个答案:

答案 0 :(得分:1)

首先,永远不要在Heroku上运行manage.py makemigrations

等到代码到达时,就不应该进行任何模型更改来生成新的迁移。在本地运行makemigrations 以创建迁移文件。在本地和Heroku上运行migrate,以将迁移应用于您的数据库。

现在,这已经不合时宜了,这很可能是由于现有迁移文件 引起的,而不是数据库中的任何内容。如果您确实想重新开始,则可以从每个应用的migrations/目录中删除文件。

最后,无需销毁并重新配置数据库即可将其重置。相反,您可以use heroku pg:reset

  

您为数据库分配的PostgreSQL用户没有创建或删除数据库的权限。要删除并重新创建数据库,请使用pg:reset