Parece que estás tratando de superar la configuración, ¿verdad?
Bueno, uno de los koans del Zen de Python es “explícito es mejor que implícito”. Con eso en mente, prefiero tener explícitamente todas las versiones de configuraciones almacenadas en el control de código fuente. Lo que hace que cosas como tener “local_settings.py” como parte de .gitignore sean inaceptables para mí. De hecho, me he encontrado con problemas con las copias de los archivos local_settings.py que están tan fuera del archivo de configuración que la incorporación de nuevos desarrolladores y / o implementación se vuelve muy problemática.
Lo que significa que prefiero hacer es lo siguiente:
- ¿Cuánto carnero necesitas para 100 millones de visitas por día?
- ¿Qué lenguajes de programación alguna vez fueron emocionantes y esenciales pero ahora se están desvaneciendo?
- ¿Hay alguna posibilidad de tomar un sitio de redes sociales como una startup?
- ¿El inicio de sesión social reemplazará el registro tradicional?
- ¿Es seguro diseñar un formulario de búsqueda en el sitio con solo una entrada de texto y sin botón de envío?
- Cree un paquete de configuración (directorio).
- Cree un módulo base (.py) que contenga la configuración predeterminada.
- Cree versiones dependientes de la ubicación que lo extiendan. Ejemplos serían módulos llamados cosas como ‘dev (.py)’ y ‘producción (.py)’.
- Llame a estos explícitamente a través de ./manage.py runserver –settings = settings.dev o ./manage.py runserver –settings = settings.prod
Puede ver un ejemplo de trabajo en el código fuente de Django Packages: https://github.com/opencompariso…, que contiene los módulos base (.py), heroku (.py) y test (.py). Con este patrón, podemos agregar fácilmente otros entornos y realizar un seguimiento de ellos. Por ejemplo, podríamos agregar lo siguiente y tenerlos en el control de origen:
- gondor (.py)
- dotcloud (.py)
- pydanny (.py) (para cuando quiero mis propias configuraciones personalizadas locales, de esta manera se almacenan en el control de origen y las personas pueden ayudarme a diagnosticar problemas con mi configuración)
Pero no solo creas mi palabra.
De hecho, voy a nombrar a Jacob Kaplan-Moss y vincularlo a algunas diapositivas que tiene sobre el tema. Comience en http://www.slideshare.net/jacobi… y siga las diapositivas hasta su conclusión obvia.