我在Heroku上开始使用Django - 它显示了设置dj_database_url ......
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
我是否应该完全按照上述方式离开?多数民众赞成我所做的 - 我的网站似乎工作得很好......
OR
我是否应该使用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
答案 0 :(得分:8)
原样是正确的。
在Heroku上运行时,有一个环境变量集(DATABASE_URL
),其中包含数据库URL(类似postgres://
的字符串,但具有较长的自动生成的用户名/密码/数据库名称,以及主持人通常在amazonaws)
在本地运行时,未设置DATABASE_URL
,因此使用您的default = '...'
数据库URL(允许您在本地运行代码以进行开发,并部署到Heroku,而无需更改任何代码)。
这基于"12factor methodology"(整个文档几乎描述了Heroku的结构)
dj_database_url.config
只是从URL解析用户名/密码/ host / db-name,并将其拆分为dictionary format expected by Django - the code相当简单,如果你很好奇< / p>