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

Kap*_*ngh 3 django postgresql heroku heroku-postgres

我在 Heroku 上部署了一个学习项目。它提供了一个 Postgres 数据库。我在 Django 项目的模型中引入了一些重大更改,并销毁了旧数据库并提供了一个新数据库,该数据库完全为空,但它不像空数据库那样工作。

当我运行命令时heroku run python manage.py makemigrations,我收到错误消息

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

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

Chr*_*ris 8

首先,你永远不应该manage.py makemigrations在 Heroku 上运行。

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

既然已经解决了,这很可能是由现有的迁移文件引起的,而不是数据库中的任何内容。如果你真的想重新开始,你可以从你的每个应用程序migrations/目录中删除文件。

最后,无需销毁和重新配置您的数据库来重置它。相反,您可以使用heroku pg:reset

分配给您的数据库的 PostgreSQL 用户无权创建或删除数据库。要删除并重新创建您的数据库,请使用pg:reset.