目前想到两种方式管理配置文件:
1.写两个product_settings.py, development_setting.py, 然后写个build脚本,根据
jenkins 设置构建环境,不同的环境将不同的配置文件软连接或者cp成settings.py
2.线上环境用的是supervisor+gunicorn+nginx+django,gunicorn启东时,可以设置变量,
设置一个DJANGO_RUN_ENV变量,然后在settings.py中通过判断变量的值,更新不同的配置,
但是有一个默认的配置就是线上的。
不知道哪种方式更加合适一些,请大神分享下自己的配置文件管理方式,万分感谢。
阿神2017-04-18 09:17:41
一般Python项目的alpha、beta或者生产的机器会统一刷python项目运行所需的环境(一般指的是基础设施:例如redis、mq等),可以专门刷一份环境相关的配置文件(例如:/etc/google/env.yaml), 在这个文件中指定当前机器所属的环境(alpah、beta、prod等),然后可以放一个字段:
env: alpha/beta/prod
然后你的django项目配置个模块用于读取机器环境配置文件。
这个方法看似啰嗦,但是其实对于环境的管理真的很好使,我们就是这么搞得。