做一个python的项目。需要连接数据库。数据库采用读写分离。

本地采用了一个配置来记录db信息。名字为:settings.py

到了线上,才发现原来线上的环境不一样。起码,它的db读写分离位于不同的机器。而我本地开发,只能靠不同的db在实现。于是,配置文件就得修改。这一改动就有好几处地方要改变。相当麻烦。

次日,添加一个功能,回到本地开发环境,配置文件又得修改。(配置文件都在svn上。之前的版本打了一个tag)。

然后发布之前,又修改配置文件。来回都不知道浪费了多少时间。关键是,还老忘记。郁闷啊。

能否解决这个问题呢?

想了想。最终采用以下方法:

把原来的一个配置文件分成3个。 分别是:

  • settings.development.py
  • settings.production.py
  • settings.test.py

settings.py是一个link,

  • 在development环境下面ln -s settings.development.py settings.py
  • 在production环境下面ln -s settings.production.py settings.py
  • 在test环境下面ln -s settings.test.py settings.py

然后svn里面把settings.py ignore掉。

在推送脚本里面进行相应的tag推送,推送后进行link。

这样就解决了环境的问题