4

我正在关注 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
4

1 回答 1

9

它是正确的。

在 Heroku 上运行时,有一个环境变量DATABASE_URLpostgres://

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

这是基于“12factor 方法”(整个文档几乎描述了 Heroku 的结构)

只是从 URL中dj_database_url.config解析用户名/密码/主机/数据库名称,并将其拆分为Django 期望的字典格式-如果您好奇,代码相当简单

于 2012-10-08T05:46:04.130 回答