在开发过程中, 总会需要对表结构进行变更. 能否记录表每次变更呢? 就像版本控制哪样.
是的,每次都记录。
如果公司有用禅道开发,就很方便。例如:又需要开发一个活动,原来表结构不满足需求,需要增加,每增加一个字段或者修改一条记录,就把sql复制出来(软件的历史记录里面有),粘贴禅道的文档上面(没有的话就自己记录)。
好处就是:当开发完成需要上线的时候,只需要把你文档里面的sql,直接拿到线上的数据库去执行,这样就不需要又手动修改一次线上的数据表结构。因为开发时数据库肯定是分开的,很多时候开发过程很容忘记修改了数据库那些东西,所以记录起来很有必要,哈哈哈,个人看法。
开发过程中,当一个表在第一次定义表结构之后需要更新表的结构,那么就不能直接更改,而是进行upgrade
操作,这么做的原因是不影响当前项目的正常运行,首先项目如果在客户方部署投入使用,如果你贸然更改表结构会导致用户生产环境数据出问题,数据库混乱,其次对开发环境而言,无论是对自己还是同事,在开发这个项目的时候都会在数据库存入一些数据,那么直接更改表结构也有那样的问题,所以现在大部分都会用以下策略:
现在很多框架都会把数据库表结构放在一个文件中比如
install.xml
,把upgrade
放在一个文件中,每次定义一个数据库表需要更改表结构时,都需要先在upgrade
文件中先更新表结构,然后同步到install.xml
文件,然后通过UI
进行升级操作
5 回答1.7k 阅读
8 回答1.1k 阅读
4 回答554 阅读✓ 已解决
3 回答939 阅读✓ 已解决
2 回答1.5k 阅读
1 回答777 阅读✓ 已解决
2 回答953 阅读
http://docs.phinx.org/en/latest/ 这个可以参考下。不过个人觉得一点不太好用。