客户的项目,每次执行sql都要提交给dba,关键这垃圾平台还不允许报错,深受折磨。
版本管理的方法
传统sql管理
有经验的研发一定会记录需要的sql,这样初始化时不至于乱套。
那么后续升级怎么办呢?
可以用增量法,要升级某个版本,前面的sql都执行。
即使不精准也没事,但是一定要有容错,即:全部执行单条会报错,但是整体结果是一致的。
例如:
create语句如果存在,执行失败,但是不影响功能。
insert语句(带主键)的,执行失败,也说明已经有了。
update语句无所谓,只要主键正确,执行多少次结果都一致。
工具sql管理
例如flyway等,原理是通过文件名等来控制版本。
这种方式不错,很多项目都在用。
但是有个问题,如果是多微服务的模式,这种怎么办呢?
而且要面对有时是升级,有时是从0开始部署,如何应对好各种问题呢?
标准服务和定制服务的sql?