Heroku上的Django DB连接问题

时间:2020-02-11 21:28:26

标签: django postgresql heroku

我是django的新手,可能缺少明显的东西。

我打算创建一个简单的项目并将其部署在heroku上。 由于heroku不支持sqlite3,因此我在Elephantsql上设置了一个postgres实例。 我已经更改了settings.py文件,并能够从http://127.0.0.1:8000/连接到postgres实例。

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "dummy",
        "USER": "dummy",
        "PASSWORD": "dummy",
        "HOST": "dummy",
        "PORT": "5432"
    }
}

但是,我仍然无法从heroku连接。

ProgrammingError at /
relation "home_signup" does not exist
LINE 1: ...e_signup"."email", "home_signup"."timestamp" FROM "home_sign...
                                                             ^

我已经遍历了heroku提供的postgres数据库,但是免费版本仅限于10行。因此,请考虑使用具有更好的免费提供功能的Elephantsql。

任何指针都会有很大帮助。


更多详细信息:

我在Elephantsql中创建了一个实例>在本地运行了迁移>使用pgAdmin4工具进行了检查>表已创建

该项目只需要从输入字段中输入文本并将其添加到表的col中即可插入记录而不会在本地出现任何问题。我正在使用pgadmin来检查是否插入了记录。

我没有执行任何选择或任何其他数据库操作。

2 个答案:

答案 0 :(得分:0)

使用django-heroku。

我使用此视频来部署我的应用:https://www.youtube.com/watch?v=6DI_7Zja8Zc

答案 1 :(得分:0)

最后我找到了解决方案。 Heroku不遵守settings.py

中提供的数据库详细信息

Heroku的信息中心下有一个名为设置的部分。 在 config vars 部分下,我们需要将DB TNS添加为键值对-key = DATABASE_URL和value = DB TNS。

截屏: enter image description here

注意:如果您有一个heroku预置的postgre DB,则DATABASE_URL将指向heroku postgre,我们无法编辑该值。我们需要先删除postgre DB插件。