=======================
mysql部署方案2.0
1. sql类型解释
sql为两种类型sql,第一类是基础数据sql,第二类为业务数据sql.
- 基础数据定义为对bdms系统库表结构的定义及初始化数据, 业务数据则跟生产环境相关,用于修改特定环境;
- 基础数据对于每个全新的环境都需要全部执行, 业务数据只对于关联的生产环境才是有意义的;
- 基础数据格式
sys_date_seq.sql
,如bdms_20200327_001.sql, 业务数据格式env_date_seq.sql
,如xiangyang_20200327_001.sql,wuhan_20200327_001.sql; - 基础数据存放文件夹/sql,如:
scripts/sql/bdms
, 业务数据存放文件夹/sql/env,如:scripts/sql/xiangyang
;
2. sql创建规则
- 当你的sql对所有环境都需要生效时,请创建基础数据sql,根据系统时间和指定的序号(注意,协同工作时可能跟其他人的序号冲突,这里暂无较好解决方案,需要在合并pr时解决冲突)生成对应名称sql
- 当你的sql只对某一个生产环境生效时,请创建业务数据sql,规则和基础数据sql类似。需要注意的是,若有多个生产环境都需要生效此修改,请将此业务sql复制到每一个生产环境文件夹中
3. sql部署准备
conf
, 每一个生产环境业务数据存放文件夹下都需要包含一个文件conf
,文件包含当前生产环境版本号和本次更新所包含的文件名-
deploy.sh
, 每一个生产环境业务数据存放文件夹下都需要包含一个更新脚本deploy.sh
,更新脚本内容:- 将scripts/sql文件夹放入mysql docker容器
- 根据conf版本号进行数据库全量备份
- 根据conf更新文件名检索到指定的sql文件进行更新
4. sql部署流程
- 根据上次更新,修改
conf
本次版本号和更新文件名 - 将
scripts/sql
打包放入部署文件中 - 执行部署脚本
deploy.sh