在线上环境中部署脚本,可谓是常在河边走,哪有不湿鞋,所以大大小小的案例总结下来,还是会发现一些有趣的地方,这些可以作为操作时的一些参考,仅供参考而已。
第一类脚本是修复脚本,比如提供的数据修复功能,数据补丁等,这类脚本的特点是后续的数据变更很可能会依赖于之前的操作,环环相扣。所以一旦执行过程中出现问题,就需要保证这个操作可回退,否则会是雪上加霜。
脚本1
脚本2
脚本3
脚本4
脚本5
第二类的脚本是彼此之间没有直接联系。哪怕是中间执行出一点问题也不会直接影响其他业务。
脚本1
脚本2
脚本3
脚本4
脚本5
第三类的脚本介于两者之间,有互相的依赖,也有彼此独立的部分。
脚本1
脚本2
脚本3
脚本4
脚本5
假设我们已经对上述三类需求很熟悉,很清楚自己在做什么。在MySQL的场景中是否可以都一一满足呢。
我们可以做一个简单的测试来说明。首先我们创建一个表test_abc,然后插入3条数,其中第2条是有问题的,插入可能会报错。
create table test_abc (id int primary key,name varchar(20));
insert in