我有一个使用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文件,以便我不必重复设置?
答案 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