数据库-如何用git记录MySQL database scheme 的改变
团队中基于敏捷开发的概率,产品的迭代周期非常短,每次版本的提交基本都涉及到数据库的改变。
团队中每个成员都在自己的电脑上搭建了开发环境。
请问如何在提交代码的时候把个人环境中的数据库的改变一并提交到git中?
如何让git修改数据库?
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
数据库修改是任何一个项目都避免不了的,不管架构多优秀
有个工具叫dbdeploy
专门维护数据库脚本的版本的
建议你们尝试一下,原理和Allo 说的类似,不过工具帮你做了很多工作。
敏捷开发,工具非常重要。
如果都是人来做,就“敏捷”不起来了
另外,让git自动修改是不可能的
但是可以用hudson监控git的变化,当脚本有变化时,调用脚本自动修改数据库
具体看帮助文档吧
首先明确一点,Git是用来维护代码的,不是用来维护数据库结构的,所以利用GIT或者SVN,只能对数据库结构的SQL语句代码做一定程度的辅助。
推荐的做法是建立一个专门存放数据库结构的文件夹,放置数据表的SQL。
如果任何人对数据库结构有修改,只将修改部分的语句存为SQL文件并提交。
SQL可以以版本号为单位存放,最终可能会形成如下形式:
SQL/main.sql
SQL/upgrade-4.0.0-4.0.1.sql
main.sql存放了初始的数据库结构与数据
upgrade-4.0.0-4.0.1.sql存放语句形如:
ALTER TABLE `mail`
ADD `recipient_total` INT( 10 ) NOT NULL AFTER `recipient_count` ;
...
这样子当数据库结构升级时,Team成员只要更新SQL文件夹下的所有文件,运行当前版本以后的所有SQL就可以升级到新的数据库结构了。
PS:另外敏捷开发和数据库结构的频繁修改没有直接的因果关系,数据库频繁修改只能说明你们的构架上考虑不足。