最近进行了系统的一次大的升级,由于要进行升级执行的数据库的脚本很多,所以发布时一不小心执行了一个不该执行的脚本。事后虽然我们及时的进行了补救,但是

仍然让系统的业务停滞了近2个小时。

因而有必要对数据库脚本的登记和管理及数据库脚本的发布流程进行下梳理。

首先就体现在数据库的脚本登记上:

1.脚本登记一定要按照项目登记在统一的文件夹,文件夹的名称要按照统一的规范来命名,让发布人员一眼就能根据文件夹的名称来区分。
因为我们目前一般都会有多个项目并行,虽然都是围绕一个产品在进行开发,但是项目的启动和终结是有先后顺序的,所以 一般一个项目
的脚本都应该在一个文件夹下,同时由于项目是在迭代进行的,不是一次就将所有的功能就发布完了,所以一定要在项目文件夹下再有子文
夹来区分,比如有些正在开发的功能的脚本是不能执行到PRD数据库的,因此我们在项目文件夹下应该有2个文件,一个是开发和测试使用的
另外一个是专门用来发布PRD时使用的。每次发布PRD前都会确定发布的功能的,这样我们就可以从开发和测试的文件夹中整理一份脚本来
用于发布。
2.每次登记脚本都要写清楚这段脚本的用途和说明,创建者,登记时间,执行了那些数据库,如果有注意事项,则需要加以说明,比如这段脚本
只能在那个数据库执行,或者不能在 那个库执行。同时普通的数据库脚本和存储过程及函数要分开登记在不同的脚本文件中。同时脚本的登记
实现增量登记,即如果你修改了某个存储过程,请将修改后的存储过程直接登记在专用于登记存储过程的脚本文件中,不要修改以前登记的存储
过程。
其次就是我们数据库脚本的发布的流程了:
1.每次将对要发布PRD版本时,需要发布的脚本要提前要和发布该项目测试版人员进行确认清楚,因为发布项目测试版本的同时会非常清楚测试版本
执行脚本的情况,而且也会有记录,这样可以保证执行的脚本都已经通过了测试,这样才可以保证发布时脚本的正确执行。
2.如果是遇到大的版本升级,系统升级的前一天,或者半天,先拿一个最新的正式版的备份,做一次模拟升级,将可能遇到的问题尽可能的暴露出来,
这样可以进一步的降低风险。
3.数据库脚本升级执行前,尽可能的先做备份,然后再执行。
另外还有一点要注意的是冲突。
由于我们针对同一个产品在并行开发多个项目,因此会有像AppID,MenuID,及其他一些基础数据项的ID,比如OrderTypeID等需要新增的情况,这时候
要保证我们执行脚本时不发生ID或者主键冲突的情况,那就是要我们在写这些脚本时,都在一个全局的数据库中去占位,先将这个ID的位给占了,然后在
登记,这样就不会出现这种情况了。

转载于:https://www.cnblogs.com/kevinGao/archive/2012/12/15/2819710.html

系统升级时,数据库脚本执行注意事项,血的教训相关推荐

  1. PowerShell说“此系统上的脚本执行被禁用。”

    我正在尝试运行一个从cmd.exe调用powershell脚本的cmd文件,并且出现以下错误: 无法加载Management_Install.ps1因为在此系统上禁用了脚本的执行. 我跑了 Set-E ...

  2. Qt编写安防视频监控系统49-多数据库支持

    一.前言 数据库设置模块,因为很多项目都会用到,索性这期间也将这玩意重新架构了一遍,对应的数据库组件同样重写了一遍,关于数据库的参数无非就6个,数据库类型(sqlite.mysql等).数据库名称.主 ...

  3. 基于JSP的火车高铁购票的系统【数据库设计、源码、开题报告】

    数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86467806 主要使用技术 Servlet+JSP+JS+CSS+Mysql 功 ...

  4. Linux系统端口检测脚本

    Linux系统端口检测脚本 执行脚本一键检测服务器上中间件端口是否存在 #!/bin/bash #端口连通性检测 #加入字典变量 PORT_LIST="3306 9200 9876 6379 ...

  5. MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行

    C#开发工具:Visual Studio 2012 数据库:Sql Server Windows版本:Win10 分辨率:1366*768 文章的最后有KTV点歌系统的前后台源码下载链接. 在正式写代 ...

  6. MySQL注释形式_可执行注释语句(/*!...*/)_数据库注释_数据库脚本注释_SQL脚本注释格式_SQL脚本注释分类

    文章目录 单行注释 多行注释 可执行注释 为什么要把可执行的 SQL 语句写在注释里面呢? 注释示例 导入数据时禁止/激活索引 测试禁止索引再导入数据的效率 单行注释 SELECT * from tf ...

  7. 终端执行php,PHP命令行执行PHP脚本的注意事项总结

    文章来给各位同学介绍在PHP命令行执行PHP脚本的注意事项总结,如果你不注意这些东西,很可能服务器安全就出问题哦. 如果你使用的wamp集成安装环境的话,那么你php的配置是在D:/wamp/bin/ ...

  8. 基于SpringBoot的企业OA系统的设计与实现,Java毕业设计项目,高质量毕业论文范例,源码,数据库脚本,项目导入运行视频教程,论文撰写教程

    目录 课题背景 项目技术栈 适合对象 适合课题 项目功能概述 高质量论文范例(附原图,可再次编辑和修改) 毕业设计撰写视频教程 部分运行截图 课题背景 82.7%的受访白领表示认为数字化技术极大地提高 ...

  9. win10 mysql 1030_Win10系统打开按键精灵提示#1030:启动脚本执行(图)

    原标题:"Win10系统打开按键精灵提示"#1030:启动脚本执行"相关电脑问题教程分享. - 来源:191路由网. 众所周知,按键精灵是一款模拟键鼠操作的编程软件,只要 ...

  10. pg数据库执行sql文件_在linux中Postgresql数据库如何执行脚本文件

    在linux中Postgresql数据库如何恢复数据库?执行sql脚本文件呢?具体步骤如下: 一.恢复数据库备份文件 1.将数据库备份文件xxx.backup用连接工具拷贝到/opt下,这个不固定,位 ...

最新文章

  1. 每日一皮:老大爷,您保持年轻的秘诀是什么
  2. python人脸识别毕业设计-Python 40行代码实现人脸识别功能
  3. Docker容器的使用方法
  4. 几种 ETL 工具的比较(Kettle,Talend,Informatica 等)
  5. 欢迎广大测试人员,加入微信群,了解自动化测试的框架,检查点,参数化。...
  6. Windows核心思想-宽字符与窄字符(Unicode和ASCII)
  7. java提取省市县乡镇村
  8. Java反射常见面试题
  9. 数据库SQL语句练习一
  10. 缠中说禅电子书_缠中说禅108课PDF电子书
  11. 完整的省市县三级联动
  12. c语言循环语循环控制,C语言.控制语循环语句.ppt
  13. 2018年第九届蓝桥杯省赛C/C++ A组(蒻鸡自己写的,看不上勿喷,自己的一点想法)
  14. python update函数会调用哪些内置函数_Python字典的内置函数中没有 append()操作,可以用 update()来更新字典内容...
  15. Opencv开发笔记(三):使用形态学滤波对图像进行边缘及角点检测
  16. 动态内存管理——tlsf
  17. S5PV210的时钟系统
  18. 在Windows服务器上搭建WEB环境MySQL 5.7+JDK 1.8+Tomcat 8.5并使用war包进行部署+简单运行jar程序+Tomcat Manager快速部署
  19. 成都大数据培训之Python一系列的知识整理
  20. 推挽电路和开集电路介绍

热门文章

  1. iOS中实现plist中读取数据实现Cell的显示(字典转模型,实现按序分组)修改图片的尺寸...
  2. libevent使用一 libevent导入项目
  3. Struts2.0 xml文件的配置(package,namespace,action)
  4. OpenCV常用函数(三)
  5. 使用Xcode Instruments Leak解决内存泄漏问题
  6. Mac电脑上怎么添加密码提示?操作教程来啦!
  7. 关于EasyRecovery的一些高级设置
  8. jsp开发教程之 仿MOP论坛 二(数据库,界面设计篇)
  9. 1.4 PuTTY和Xshell远程连接与密钥认证登录
  10. 【Python学习笔记之一】Python关键字及其总结