如何区分开发测试环境是开发中的一很重要的事情。一般一个线上项目都至少有两个环境(开发环境、生产环境),甚至更多。本文以Python为例,讲讲我在环境控制上遇到的那些坑。
我一开始是使用文件来区分环境的。
1 | app/ |
其中env.py
只有一行,表明环境类型。
1 | env = "dev" |
在其他文件中,可以通过import env.env
来判断使当前环境。
但这样有一个问题,就是在不同环境中,要确保正确的修改了env.py
。我们生产服务器有一次更新代码的时候,因为之前有人临时在服务器上修改了代码,使用了git reset --hard
命令, 导致了env.py
被重置。整个网站看上去正常,但没有用户能登录上去,因为使用了测试服务器的配置。
利用Git分支控制环境是一种更安全的方法。基本上就是即当前项目在master
分支即为正式环境,如果不是则为dev
环境(当然也可以不止这些)。隐藏的文件.git/HEAD
一般是这样的:
1 | ref: refs/heads/master |
其中,master
代表目前项目运行在master
分支。这样我们可以修改env.py的代码:
1 | env = "dev" |