【问题标题】:Django settings.py + dj_database_url on Heroku?Heroku上的Django settings.py + dj_database_url?
【发布时间】:2012-09-28 01:56:00
【问题描述】:

我正在关注 Heroku 上的 Django 入门 - 它显示设置 dj_database_url...

DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

我应该像上面一样离开吗?这就是我所做的 - 我的网站似乎工作得很好......

我是否应该用 DATABASE_URL 替换上面的某些内容 - 它是从 heroku 配置设置中提取的?

没有在任何地方使用 DATABASE_URL - 它似乎正在使用上面的设置在 heroku 上工作并且没有任何变化....但是当我使用 pg:info 查看数据库时 - 我得到 0 个连接...让我觉得与 postgresql 没有任何联系——但是它是如何工作的呢??

我还不太明白 dj_database_url 是如何在 Heroku 上工作的……有人能对此有所了解吗?

heroku pg:info
=== HEROKU_POSTGRESQL_GOLD_URL (DATABASE_URL)
Plan:        Dev
Status:      available
Connections: 0
PG Version:  9.1.6
Created:     2012-10-07 16:11 UTC
Data Size:   6.6 MB
Tables:      12
Rows:        27/10000 (In compliance)
Fork/Follow: Unavailable

【问题讨论】:

    标签: django heroku


    【解决方案1】:

    它是正确的。

    在 Heroku 上运行时,有一个环境变量集 (DATABASE_URL),其中包含数据库 URL(类似 postgres:// 的字符串,但具有很长的自动生成的用户名/密码/数据库名称,并且主机处于开启状态亚马逊通常)

    在本地运行时,DATABASE_URL 未设置,因此使用您的 default = '...' 数据库 URL(允许您在本地运行代码进行开发,并部署到 Heroku,无需更改任何代码)。

    这是基于"12factor methodology"(整个文档几乎描述了 Heroku 的结构)

    dj_database_url.config 只是从 URL 中解析用户名/密码/主机/db-name,并将其拆分为 dictionary format expected by Django - the code 相当简单,如果您好奇的话

    【讨论】:

    • 谢谢!返回 0 个连接的 pg:info 怎么样?连接的应用程序不会至少有一个连接吗?
    • @tbarbe 不确定,我想这取决于 DB API 是否保持持久连接打开?
    猜你喜欢
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 2013-10-05
    • 2015-07-26
    • 2014-03-08
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多