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

做了一个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的配置中加入这个环境变量。

 

 

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

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值