论坛首页 编程语言技术论坛

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

浏览 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环境中存在的。

 


3) 然后就可以根据2)设置的环境变量来找配置了。

 

if os.environ.has_key('XXX_YYY_ZZZ'):
       getConfFrom('settings.development.py')
else:
       getConfFrom('settings.production.py')

 

这里有一个要注意的地方:

 

配置好环境变量后,如果是在shell下运行程序,没有什么问题。

 

但是如果用eclipse+pydev开发,会发现,读不到这个环境变量。

 

这个时候,需要在pydev的配置中加入这个环境变量。

 

 

此方法虽有点麻烦,但也不失为一种可行的解决方案。

 

 

 

 

 

 

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics