以模块化方式组织金字塔/贴纸配置文件

时间:2013-09-03 15:16:19

标签: python nginx pyramid uwsgi paster

我有一个使用paster ini文件的金字塔应用程序,它通过uwsgi托管。我想托管不同的实例(即开发,升级,生产),理想情况下根本不需要触摸配置文件。显然,不同的实例需要不同的设置。我的方法是这样的:

[app:base]
sqlalchemy.url = some/connection/string/%(instance)s

[app:development]
instance = development

[app:production]
instance = production

这不起作用,因为在定义instance时尚未定义sqlalchemy.url。我试图从外面以某种方式注射instance,但没有成功。我无法访问任何环境变量。我还尝试从Nginx通过uwsgi_param传递值,但无法使其工作。

如何以模块化方式组织贴纸ini文件,以便我不必重复设置?

1 个答案:

答案 0 :(得分:2)

您可以使用“config:”URL来包含其他文件中的设置。

在“shared.ini”

[app:myapp]
use = egg:myapp

在“development.ini”

[app:main]
use = config:shared.ini#myapp
a = 2

在“production.ini”

[app:main]
use = config:shared.ini#myapp
a = 3

以下是使用该模式的一些真实世界代码:

https://github.com/Pylons/sdidev/blob/master/etc/development.ini