浏览 2112 次
锁定老帖子 主题:解决开发环境和生产环境配置文件匹配问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-29
做了一个python的项目。需要连接数据库。数据采用读写分离。
本地采用了一个配置来记录db信息。名字为:settings.py
到了线上,才发现原来线上的环境不一样。起码,它的db读写分离位于不同的机器。而我本地开发,只能靠不同的db在实现。于是,配置文件就得修改。这一改动就有好几处地方要改变。相当麻烦。
次日,添加一个功能,回到本地开发环境,配置文件又得修改。(配置文件都在svn上。之前的版本打了一个tag)。
然后发布之前,又修改配置文件。来回都不知道浪费了多少时间。关键是,还老忘记。郁闷啊。
能否解决这个问题呢?
想了想。最终采用以下方法:
1)把原来的一个配置文件分成3个。 分别是:settings.development.py settings.production.py settings.py
settings.py实际上是根据条件,来读development还是production里面的具体配置信息。
2)由于采用了3个配置文件,所以需要一个条件来判断到底是哪个配置生效。所以,我在本地开发环境中,加入了一个环境变量:XXX_YYY_ZZZ,我想,这个环境变量是不会在production环境中存在的。
if os.environ.has_key('XXX_YYY_ZZZ'): getConfFrom('settings.development.py') else: getConfFrom('settings.production.py')
这里有一个要注意的地方:
配置好环境变量后,如果是在shell下运行程序,没有什么问题。
但是如果用eclipse+pydev开发,会发现,读不到这个环境变量。
这个时候,需要在pydev的配置中加入这个环境变量。
此方法虽有点麻烦,但也不失为一种可行的解决方案。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |