我已经尝试了很多次,让我的应用程序在Heroku上运行而没有成功。它们在本地运行的事实似乎完全无关紧要。显然,我不明白这是如何运作的。
所以......这里有几个问题,我已经决定在SO上的一个问题上分组:
1。为什么Heroku有很多不同的地方影响设置(Procfile,wsgi.py,config vars和settings.py)?
2。他们如何相互联系?
3。哪个优先?
4. 他们都必须完全相同吗?
5. 我该怎么做/我应该如何配置Heroku Django模板中给出的数据库设置?
- 从$ DATABASE_URL
解析数据库配置- DATABASES ['默认'] = dj_database_url.config()
- #此行空白原文。我在这里放置文字以使其格式正确
- #启用连接池(如果需要)
- DATABASES ['默认'] [' ENGINE'] =' django_postgrespool'
醇>
a) DATABASE ['ENGINE']是否在DATABASE [default]之后覆盖DATABASE [default]?
b)为什么这两个格式不是默认的Django设置,这是一个简单的字典,而不是所有这些额外和混乱的括号?
c)它们是否应被视为两种不同的设置,因此如果您需要两种设置,则必须使用数据库路由器?
d)为什么devcenter article说导入postgrespool但template没有说明这一点?
e)为什么dj_database_url'默认'optional但Django为mandatory?
f)当我尝试评论第82行时,我收到有关重置查询的错误,为什么?
g)我有来自我的配置变量的postgres字符串作为dj_database_url的参数,但是我得到一个NAME ERROR,数据库未定义。为什么呢?
答案 0 :(得分:0)
你实际上要比现实困难得多。所有dj_database_url
都使用环境变量来创建适合在DATABASES设置中使用的字典。它没有做任何其他事情。
您链接的devcenter文章提到了processpool作为增加并发性的一种方法。当你刚开始时,它并没有说甚至暗示你需要它。在这一点上你甚至没有理由阅读那篇文章。
您需要阅读的唯一文章是Getting started with Django,它会告诉您完全该怎么做。