首页 > django请教下各位,怎么管理生产环境和开发环境的配置

django请教下各位,怎么管理生产环境和开发环境的配置

目前想到两种方式管理配置文件:

1.写两个product_settings.py, development_setting.py, 然后写个build脚本,根据
jenkins 设置构建环境,不同的环境将不同的配置文件软连接或者cp成settings.py

2.线上环境用的是supervisor+gunicorn+nginx+django,gunicorn启东时,可以设置变量,
设置一个DJANGO_RUN_ENV变量,然后在settings.py中通过判断变量的值,更新不同的配置,
但是有一个默认的配置就是线上的。

不知道哪种方式更加合适一些,请大神分享下自己的配置文件管理方式,万分感谢。


我是使用的第一种方式


settings
    --__init__.py
    --common.py
    --dev.py
    --uat.py
    --pro.py
     
common.py里面配置通用部分
dev.py、uat.py、pro.py里面配置开发、测试、生产环境不同的配置
__init__.py里面
from common import *
#from dev import *
#from uat import *
#from pro import *

一般Python项目的alpha、beta或者生产的机器会统一刷python项目运行所需的环境(一般指的是基础设施:例如redis、mq等),可以专门刷一份环境相关的配置文件(例如:/etc/google/env.yaml), 在这个文件中指定当前机器所属的环境(alpah、beta、prod等),然后可以放一个字段:

env: alpha/beta/prod

然后你的django项目配置个模块用于读取机器环境配置文件。

这个方法看似啰嗦,但是其实对于环境的管理真的很好使,我们就是这么搞得。

【热门文章】
【热门文章】