RyanPoy 发表于 2013-2-7 09:06:39

解决开发环境和生产环境配置文件匹配问题

做了一个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环境中存在的。
 

3) 然后就可以根据2)设置的环境变量来找配置了。
 
if os.environ.has_key('XXX_YYY_ZZZ'):       getConfFrom('settings.development.py')else:       getConfFrom('settings.production.py') 
这里有一个要注意的地方:
 
配置好环境变量后,如果是在shell下运行程序,没有什么问题。
 
但是如果用eclipse+pydev开发,会发现,读不到这个环境变量。
 
这个时候,需要在pydev的配置中加入这个环境变量。
 
 
此方法虽有点麻烦,但也不失为一种可行的解决方案。
 
 
 
 
 
 
页: [1]
查看完整版本: 解决开发环境和生产环境配置文件匹配问题