前言
此文档用于发布产品应用数据模型变更的流程和规范。开发人员在提交数据变更前须遵守此流程和规范进行审核。数据变更包括数据模型的变更和种子数据的变更
产品应用数据变更范围定义
数据模型变更(Data Model Change)
●表的变更(新增表、修改表、删除表)
●视图变更(查询定义,查询修改)
●索引变更(索引类型,字段范围)
●代码变更(Trigger、Procedure、Function、Package、Sequence)
●其他数据库对象定义的变更(LOB、Partition、)
种子数据变更(Seed data Change)
●增加种子数据
●更改现有种子数据
●删除种子数据
产品应用数据变更管理流程:
开发人员提供变更需求说明到DBA组
●DBA提供数据变更模型
●开发人员填写变更模型
●模板提交到DBA组进行审核
DBA组根据数据变更标准审核变更并审批
●DBA组发布数据变更标准
●DBA组根据数据变更标准对变更进行审核
●DBA组需要对变更需求做出快速相应
开发人员在开发数据库执行变更
●得到审核通过后开发人员执行变更
●变更的SQL\XML文件需要进入版本控制系统
●复杂的变更需要提供数据处理程序
数据变更审批流程:
1. 开发人员在数据变更审核记录页面提交审核需求
2. DBA组在数据变更审核页面进行审核
3. 开发人员在最终提交数据库代码前须得到审核通过的结果
数据变更规范
被允许的操作:
●修改字段NULL为NOT NULL,需提供默认值
●减少字符字段长度,需提供过长数据转换SQL
●减少数字字段精度,需提供超过精度的数据转换SQL
●更改数据类型,需提供数据类型转换的SQL
●更改日期的精度,需提供数据类型转的SQL
●增加字符字段的长度
提交的东西不能更改
●添加字段
不被允许的操作
●更改字段的名字
●更改表的名字
●删除一个字段
●删除种子数据(PS:允许标注为弃用)
●删除表
SQL 脚本规范
由Data Model变更引起的数据变更或者数据迁移的SQL脚本的规范:
脚本命名:产品名字_sd/txn_fix_<BUG>.sql
示例:(xxx_sd_fix_23456.sql ) ,表示更改xxx 种子数据的SQL,基于bug 为23456, sd=seed data, txn =transaction data
SQL脚本需要放在单独标准的目录下
SQL脚本会通过数据库客户进行执行
SQL脚本会在增量升级时进行修改
SQL 脚本的Header如下图: