Django deployment on heroku throws django.db.utils.OperationalError: no such table: auth_user

Django deployment on heroku throws django.db.utils.OperationalError: no such table: auth_user

我正在免费的 Heroku dyno 上部署。

这是我的 Procfile:

release: python manage.py migrate
web: gunicorn app.wsgi --log-file -

我已经在本地进行了迁移,并且正在通过 Github 进行部署。我发现 release: python manage.py migrate 行确实在 dyno 上运行命令但没有创建表(我已经通过使用 heroku run bash 进入我的 Dyno 的命令行确认了这一点,然后检查是否有是 db.sqlite3 文件中的任何表格。有 none。我使用 Heroku bash 重新运行 migrate 命令,然后表格被填充到 db.sqlite3文件。我退出控制台,重新加载我的应用程序并尝试再次登录,但它再次抛出相同的错误:django.db.utils.OperationalError: no such table: auth_user。我再次登录 Heroku bash 并看到我已经在 db.sqlite3 文件中创建的文件不再存在。

Heroku 使用临时文件系统。 由于 SQLite 作为文件存储在项目文件夹中,您不能期望它永久存在。 只有项目文件将保持不变。 您的代码创建的任何文件都将定期删除(最多 24 小时) 任何类型的存储都应该使用 S3 来完成(对于静态文件)。 对于数据库,你应该使用heroku提供的数据库服务(我用的是Postgres)。