Heroku 无法连接到我的 django 数据库

Posted

技术标签:

【中文标题】Heroku 无法连接到我的 django 数据库【英文标题】:Heroku wont connect to my django database 【发布时间】:2021-10-27 19:17:39 【问题描述】:

我的数据库是默认的sqlite3数据库,我尝试了多个项目但Heroku无法连接到数据库,希望你们能帮助我 我是 Heroku 的新手,我不知道我是否遗漏了什么

这些是我为 Heroku 设置的设置,我没有静态文件


import django_heroku
import dj_database_url

ALLOWED_HOSTS = ['*']

DATABASES = 
    'default': dj_database_url.config()


django_heroku.settings(locals())

【问题讨论】:

【参考方案1】:

SQLite 是磁盘上的数据库,它对于开发目的非常有用,但是,像 Heroku 这样的服务希望您的服务器端代码是无状态的,因此实际上不允许使用 SQLite 等数据库。由于 Heroku 的 dynos 没有跨部署持续存在的文件系统,因此像 SQLite3 这样的基于文件的数据库将不适合。

我想你可以让它工作(只要你在 Heroku 的磁盘上找到一个放置 SQLite DB 的地方),但每次重新部署时你都会不断丢失数据库的内容。

Heroku 确实有一个Postgres 产品。但是,这将适合 - 免费层和基本的 9 美元/月层,适合业余爱好/小型项目。与 SQLite 相比,最大的好处是您可以获得其他方式无法获得的备份(以及所有其他 Postgres 功能)。

这里有更新 settings.py 以使用 Postgres 的指南:https://devcenter.heroku.com/articles/getting-started-with-django#django-settings

【讨论】:

【参考方案2】:

在 Heroku 上一个非常典型的 Django 使用涉及为您的数据库使用 Postgres SQL。您的本地开发和测试数据将使用 SQLite,但是当您发布站点并运行迁移时,在 Heroku 配置的数据库将是 Postgres SQL。这不会将本地数据库的数据推送到生产环境。

生产数据库将具有与本地数据库相同的表,但将为空。如果您在本地有数据,您可以创建脚本或使用 Django 导入/导出来加载数据。

Heroku 的 Python/Django 入门演练值得一读,以了解如何配置数据库。

【讨论】:

以上是关于Heroku 无法连接到我的 django 数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法连接到服务器:PostgreSQL -Heroku

无法连接到 heroku PostgreSQL 数据库

无法使用PHP将数据库连接到heroku

Heroku 无法连接到我的 mongodb 地图集

Heroku Postgres 升级后 Flyway 无法连接到数据库

为啥我的 Heroku Discord 机器人无法连接到端口后崩溃? [复制]