我现在所在的公司使用的便是
flaway数据库版本管理工具,然后我们开发人员每次在数据库中添加新的数据库表或者视图亦或者在已存在的表中添加字段,那么我们都需要在开发工具中添加上对应的sql脚本,在sql脚本里写上sql来用来在项目部署的时候执行我们的sql脚本来新增我们需要添加的字段。
如下图所示便是我们flaway需要执行的sql脚本命名样式
sql脚本内容如下(打码位置是表名)
可能刚使用这个管理工具的时候大多数没有经验的开发人员都会有跟我一样的难处,就是写sql,每加一个字段都得手写一个sql脚本,还不能写错语法,不然部署的时候项目就无法启动,再厉害的sql大佬我想写多了也难免保证全都没问题,那么我们是怎么获取这些sql的呢?
其实我们大多数人使用的数据库管理工具是Navicat,它有一个功能,就是我们在表中添加字段和注释的时候,只要我们没有点击保存,我们可以在对应的sql预览中直接发现对应添加字段或者删除字段以及修改字段的sql语句
步骤
第一步:添加字段(删除字段,或者修改字段,或者新建表或者视图等操作,都不要着急保存!)
第二步:点击sql预览一栏,此时仍未保存,这时就出现了我们需要的sql语句
我们然后把对应的sql语句直接cv到我们的sql脚本中即可!
有时候我们仍然漏掉对应的字段没有加上对应的sql脚本,但是为了能快速恢复项目启动方便客户的使用,我们可能会图方便,直接手动在项目的数据库表中添加字段,然后在下次的发布部署前将sql脚本补上,此时我们如果任然这样写sql脚本的话那我们下次部署的时候就会显示这个字段已经存在,项目仍然会无法启动(因为我们这个sql脚本是补充的,上次手动在数据库中添加字段的),此时我们该怎么办呢?
如果我们在下次部署时先删除对应的字段的话那客户有些已经填写的数据就会产生丢失,这种方法肯定不可取,所以我们就需要在添加字段时判断该字段是否存在,存在则不添加,不存在则添加。