【问题标题】:Django deployment on heroku throws django.db.utils.OperationalError: no such table: auth_user [duplicate]heroku 上的 Django 部署抛出 django.db.utils.OperationalError: no such table: auth_user [重复]
【发布时间】:2020-11-07 23:47:49
【问题描述】:

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

这是我的 Procfile:

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

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

【问题讨论】:

    标签: python django sqlite heroku django-manage.py


    【解决方案1】:

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

    【讨论】:

    • 我现在尝试使用 Postgres
    • 如果它解决了您的问题,请将其标记为已解决
    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 2020-04-26
    • 2018-01-18
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2020-05-28
    相关资源
    最近更新 更多