2012-06-18 7 views
8

Quiero tener una configuración común con configuraciones que no cambian en diferentes entornos (desarrollo y producción). Sé que podría configurar un archivo global settings.py (por ejemplo, límites sql), pero hasta donde yo sé, la pirámide requiere que se encuentren ciertas configuraciones en el archivo ini al inicio (por ejemplo, rutas de directorio de plantillas).¿Cómo usar una configuración ini común (entre desarrollo y producción) en pirámide?

¿Puedo, y en caso afirmativo, cómo podría hacerlo en pirámide?

Respuesta

16

Hay un par de opciones posibles sin salir de los límites de INI de PasteDeploy. Sin embargo, desde el principio, tenga en cuenta que la belleza del modelo de archivo INI es una capacidad subyacente para crear múltiples archivos con diferentes ajustes/configuraciones. Sí, tienes que mantenerlos sincronizados, pero son solo ajustes (sin lógica), por lo que no deberían ser insuperables.

De todos modos, PasteDeploy supports a default section heredado por las secciones [app:XXX]. De modo que puede colocar configuraciones comunes allí, y tener diferentes secciones [app:myapp-dev] y [app:myapp-prod].

# settings.ini 

[DEFAULT] 
foo = bar 

[app:myapp-dev] 
use = egg:myapp 

[app:myapp-prod] 
use = egg:myapp 

set foo = baz 

Esto se puede ejecutar a través de

env/bin/pserve -n myapp-dev settings.ini 

Otra opción es utilizar varios archivos de configuración.

# myapp.ini 

[app:myapp-section] 
use = egg:myapp 

foo = bar 

# myapp-dev.ini 

[app:main] 
use = config:myapp.ini#myapp-section 

foo = baz 

# myapp-prod.ini 

[app:main] 
use = config:myapp.ini#myapp-section 

Esto se puede ejecutar a través de

env/bin/pserve myapp-prod.ini 

Si no desea utilizar PasteDeploy (archivos ini), se puede hacer algo en Python, pero hay beneficios reales para esta configuración es sencilla.

Cuestiones relacionadas