如何在 Heroku 上完全重置 Postgres 数据库?
Posted
技术标签:
【中文标题】如何在 Heroku 上完全重置 Postgres 数据库?【英文标题】:How to completely reset Postgres database on Heroku? 【发布时间】:2019-11-19 08:47:07 【问题描述】:我在 Heroku 上部署了一个学习项目。它提供了一个 Postgres 数据库。我对我的 Django 项目的模型进行了一些重大更改,并销毁了旧数据库并提供了一个新数据库,该数据库完全是空的,但它不像空数据库那样工作。
当我运行命令 heroku run python manage.py makemigrations
时,我收到错误消息
您正在尝试添加一个不可为空的字段......
为什么我在销毁旧数据库后会收到此消息?
【问题讨论】:
【参考方案1】:首先,你不应该在 Heroku 上运行 manage.py makemigrations
。
当您的代码到达那里时,不应该存在任何模型更改来生成新的迁移。运行makemigrations
本地 以创建迁移文件。在本地和 Heroku 上运行 migrate
以将迁移应用到您的数据库。
现在已经不碍事了,这可能是由现有迁移文件引起的,而不是数据库中的任何内容。如果您真的想重新开始,您可以从您的每个应用程序的 migrations/
目录中删除文件。
最后,无需销毁和重新配置您的数据库来重置它。相反,你可以use heroku pg:reset
:
分配给您的数据库的 PostgreSQL 用户没有创建或删除数据库的权限。要删除并重新创建数据库,请使用
pg:reset
。
【讨论】:
以上是关于如何在 Heroku 上完全重置 Postgres 数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Postgres Heroku 上的先前备份中恢复特定数据? (例如,意外删除的行)
如何在 Heroku 中将 Kafka 连接到 Postgres
如何使用 Python 迁移将 Heroku Django 应用程序的新模型表添加到远程 Heroku Postgres?