关于Heroku和Django设置的问题

时间:2015-04-03 09:30:22

标签: django postgresql heroku

我已经尝试了很多次,让我的应用程序在Heroku上运行而没有成功。它们在本地运行的事实似乎完全无关紧要。显然,我不明白这是如何运作的。

所以......这里有几个问题,我已经决定在SO上的一个问题上分组:

1。为什么Heroku有很多不同的地方影响设置(Procfile,wsgi.py,config vars和settings.py)?

2。他们如何相互联系?

3。哪个优先?

4. 他们都必须完全相同吗?

5. 我该怎么做/我应该如何配置Heroku Django模板中给出的数据库设置?

  
      
  1. 从$ DATABASE_URL
  2. 解析数据库配置   
  3. DATABASES ['默认'] = dj_database_url.config()
  4.   
  5. #此行空白原文。我在这里放置文字以使其格式正确
  6.   
  7. #启用连接池(如果需要)
  8.   
  9. DATABASES ['默认'] [' ENGINE'] =' django_postgrespool'
  10.   

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,数据库未定义。为什么呢?

1 个答案:

答案 0 :(得分:0)

你实际上要比现实困难得多。所有dj_database_url都使用环境变量来创建适合在DATABASES设置中使用的字典。它没有做任何其他事情。

您链接的devcenter文章提到了processpool作为增加并发性的一种方法。当你刚开始时,它并没有说甚至暗示你需要它。在这一点上你甚至没有理由阅读那篇文章。

您需要阅读的唯一文章是Getting started with Django,它会告诉您完全该怎么做。