我在Heroku上部署了一个学习项目。它提供了一个Postgres数据库。我对Django项目的模型进行了一些重大更改,并销毁了旧数据库并配置了一个新数据库,该数据库完全是空的,但它不能像空数据库一样工作。
运行命令heroku run python manage.py makemigrations
时,出现错误消息
您正在尝试添加不可为空的字段。...
为什么我销毁旧数据库后会收到此消息?
答案 0 :(得分:1)
首先,永远不要在Heroku上运行manage.py makemigrations
。
等到代码到达时,就不应该进行任何模型更改来生成新的迁移。在本地运行makemigrations
以创建迁移文件。在本地和Heroku上运行migrate
,以将迁移应用于您的数据库。
现在,这已经不合时宜了,这很可能是由于现有迁移文件 引起的,而不是数据库中的任何内容。如果您确实想重新开始,则可以从每个应用的migrations/
目录中删除文件。
最后,无需销毁并重新配置数据库即可将其重置。相反,您可以use heroku pg:reset
:
您为数据库分配的PostgreSQL用户没有创建或删除数据库的权限。要删除并重新创建数据库,请使用
pg:reset
。