1

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

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

[app:development]
instance = development

[app:production]
instance = production

这不起作用,因为instance尚未定义,何时sqlalchemy.url定义。我试图以instance某种方式从外部注入,但没有成功。我无法访问任何环境变量。我也尝试通过uwsgi_paramNginx 传递值,但无法让它工作。

如何以模块化的方式组织粘贴 ini 文件,这样我就不必重复设置?

4

1 回答 1

2

您可以使用“config:”URL 来包含来自另一个文件的设置。

在“shared.ini”中

[app:myapp]
use = egg:myapp

在“开发.ini”中

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

在“生产.ini”中

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

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

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

于 2013-09-04T15:39:51.150 回答