如何记录数据库中表结构变更?

在开发过程中, 总会需要对表结构进行变更. 能否记录表每次变更呢? 就像版本控制哪样.

阅读 9.8k
3 个回答

是的,每次都记录。
如果公司有用禅道开发,就很方便。例如:又需要开发一个活动,原来表结构不满足需求,需要增加,每增加一个字段或者修改一条记录,就把sql复制出来(软件的历史记录里面有),粘贴禅道的文档上面(没有的话就自己记录)。
好处就是:当开发完成需要上线的时候,只需要把你文档里面的sql,直接拿到线上的数据库去执行,这样就不需要又手动修改一次线上的数据表结构。因为开发时数据库肯定是分开的,很多时候开发过程很容忘记修改了数据库那些东西,所以记录起来很有必要,哈哈哈,个人看法。

开发过程中,当一个表在第一次定义表结构之后需要更新表的结构,那么就不能直接更改,而是进行upgrade操作,这么做的原因是不影响当前项目的正常运行,首先项目如果在客户方部署投入使用,如果你贸然更改表结构会导致用户生产环境数据出问题,数据库混乱,其次对开发环境而言,无论是对自己还是同事,在开发这个项目的时候都会在数据库存入一些数据,那么直接更改表结构也有那样的问题,所以现在大部分都会用以下策略:

现在很多框架都会把数据库表结构放在一个文件中比如install.xml,把upgrade放在一个文件中,每次定义一个数据库表需要更改表结构时,都需要先在upgrade文件中先更新表结构,然后同步到install.xml文件,然后通过UI进行升级操作

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题