问题:sql
最近的项目常常须要作版本发布,可是版本发布总是出现问题,问题以下:数据库
好比,新手小接了一个新需求,一个功能开发完了,在本地环境和测试环境都测试经过了,缓存
把版本更新包提交到运维或者一线开发手上,运维
发布到线上,svn
通知开发,测试人员进行功能更新的确认;工具
若是确认ok,更新结束;测试
若是确认不ok,进入下面的循环;版本控制
while(线上测试确认结果不OK)日志
{blog
//温习下开发的功能的流程
//在出错的代码行先后加上日志
//部署到线上
//测试确认?OK:NO;
if(OK) break;
else {
//查看日志
//从新进入循环
}
}
总之,至关的繁琐;
思考: 这是一个版本发布不规范引发的问题,问题的根源在哪呢?
在下认为,缘由有2;
解决方案:
针对这种现象和产生这种问题的缘由,解决方案很是简单;
1,首先是代码错误信息的整理,最好是在数据库中弄一张或者若干张日志表,当程序发生错误或者异常,或者功能逻辑错误的时候,把相关的判断结论和异常信息,数据进行存库,若是出现问题,能够快速的找到产生问题的缘由,和依据;
这点很是重要,能够大大减轻开发人员成为救火队长的压力,把相关的权限在后台开发给业务人员,让他们本身去协调解决问题;
2,版本控制工具的使用,好比svn, 首先,在本地弄一个功能彻底覆盖的测试,经过以后把源码分别发布到测试环境,正式环境(数据库配置文件,缓存配置文件除外),打出一个分支来做为一个主分支;
后续的功能开发,在这个主分支上复制出一个来进行开发,开发完成,测试环境测试完以后,合并到主分支上去,经过文件比较,找出更新的文件列表;
把这些文件整理,更新到线上,进行版本发布;
3,更新的一个好习惯;
首先有一个主目录, 名称是 站点域名或者应用名_时间_开发人员_需求名称
而后里面是3个目录,做用分别是:
序号 | 目录名或者文件名 | 做用 |
1 | bak | 备份目录,里面分为all(所有备份),sub(部分备份) |
2 | program | 按照程序的部分备份目录,进行部分文件的替换 |
3 | sql | 需求须要sql脚本 |
4 | readme.txt | 更新的说明,文件列表,验证方法 |
这些文件准备好以后,进行两次对比;
一个是所有备份跟本地源码或者运行包的对比,这能够找出是否有文件遗漏的状况出现;
第二个是部分备份跟program的更新文件进行对比,查看修改的地方,再次进行确认;
若是对比都没有问题,直接把program目录整个覆盖到线上的程序目录;
最后是按照确认步骤,让测试和开发人员进行确认;
若是没问题,则更新完毕;
这样作下来,通常都不会出现版本更新的问题;
如有想法,欢迎交流;卡特 505847426