资讯专栏INFORMATION COLUMN

团队开发时该如何同步数据库变更到本地

lieeps / 2073人阅读

摘要:解决方式使用开源的数据库版本控制工具。我本地的数据库如何同一键同步其他小伙伴做的数据库变动,比如小张增加了一个字段,我可以一键同步到我本地,不至于我本地各种页面报错。

多人开发时的数据库同步问题

相信各位小伙伴在进行团队开发时都遇到过这个问题:一般开发时,各个团队成员使用的是自己开发环境上的本地数据库,这个数据库只有自己在使用,开发过程中,数据库是会经常变动的,比如其他小伙伴添加了一个字段,或者新增了一张表,那么此时问题就来了,我如何把其他小伙伴进行的数据库变更同步到我本地来?不然我更新代码后很可能各种报错。这个虽然是一个小问题,大不了直接再去拷贝一份最新的数据库出来,但是每次都这样,非常低效和繁琐,那这个问题该如何解决?

解决方式1:

开发时团队成员共用一套数据库,直接把数据库的变更同步到这个数据库上就行了。这个方法简单粗暴,不过还是有不爽的地方: 共用数据库的话,数据就是共用的,我开发测试一个功能时,数据有可能被其他小伙伴改动了;还有这种方式数据库变更也要多带带做版本控制。

解决方式2;

每个小伙伴都使用本地库开发,有数据库变更时给其他人发邮件。
这种方式非常繁琐,低效,而且很可能其他小伙伴经常忘记发的情况。

解决方式3:

使用开源的数据库版本控制工具。比如dbv ,这个工具安装配置极其简单,也能满足现在的使用要求,其实我们的需求也并不多,主要是:

对数据库的变更进行版本控制,这个是必须的,对数据库的变更必须要记录下来。

我本地的数据库如何同一键同步其他小伙伴做的数据库变动,比如小张增加了一个字段,我可以一键同步到我本地,不至于我本地各种页面报错。
目前这个工具这两个大需求都能满足,下面就介绍下如何安装使用吧。

安装及配置

其实如何安装和配置文档上说的都很详细,文档传送门, 这里我再重复一遍。

1. 下载安装

下载后解压到apache的站点目录下,或者把它放到别的目录,配置为一个虚拟站点也行。
比如我就把它配置为了一个虚拟站点,DocumentRoot指向根目录即可:

httpd-vhosts.conf

Listen 7845

    
    DocumentRoot "E:devsoftsDBVCshangsheng"
    ServerName localhost
    ErrorLog "logs/localhost_123-error.log"
    CustomLog "logs/localhost_123_access.log" common
    DirectoryIndex index.html index.php

重启apache

2. 配置

php.ini 要打开php_gettext扩展:

extension=php_gettext.dll

复制dbv根目下的config.php.sample一份为config.php,配置config.php中的数据库配置。连接到你本地的数据库。

define("DB_HOST", "localhost");
define("DB_PORT", 3306);
define("DB_USERNAME", "root");
define("DB_PASSWORD", "123456");
define("DB_NAME", "shangsheng_offical");

配置完成后,在浏览器中访问你刚才配置的站点就能看到了

3. 使用git或者svn做版本控制

dbv其实也是使用的git或者svn做的版本控制,这个和一般的项目是一样的,比如你使用git的话直接在根目录下执行

git init

就行了,然后把它提交到git服务器,方便下一步其他小伙伴同步更新。
注意:
/data/meta/revision这个文件存储的是你本地数据库信息,这个文件必须添加到git的忽略列表,否则会覆盖到其他人的;还有config.php这个文件也要添加到忽略列表,因为这是你本地的配置。和其他团队成员无关。

4. 如何使用

官方举例了四个使用场景,其实我们需要的就是这个,这个是详细的使用举例,我就不再重复了,看这里

注意:
每个版本都是放在data evisions目录下的,每个版本对应一个子目录,注意这里的子目录必须是数字,否则在浏览下看到的是空串,更不支持中文。官方也有说明:

结语

OK, 这个工具就介绍完了,各位小伙伴可以尝试一下~,如果大家有更好的管理方式,可以在留言中探讨一下,相互学习。如果我的文章对你有帮助的话,动动手指点个赞吧~ 谢谢!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25688.html

相关文章

  • 聊聊 Apache Dubbo

    摘要:架构中有两个主要角色服务提供者和服务使用者。服务提供者在启动时,向注册中心注册自己提供的服务。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间,并避免任何单个资源的过载。 本文来自于我的个人主页:Apache Dubbo,转载请保留链接 ;) 在2011年10月27日,阿里巴巴开源了自己的SOA服务化治理方案的核心框架Dubbo,服务治理和SOA的设计理念开始逐渐在国内软件行业中...

    XFLY 评论0 收藏0
  • 有赞搜索系统的架构演进

    摘要:另外集群也没有做物理隔离,有一次促销活动就因为粉丝数据量过于庞大导致进程内存耗尽而,使得集群内全部索引都无法正常工作,这给我上了深深的一课。 有赞搜索平台是一个面向公司内部各项搜索应用以及部分 NoSQL 存储应用的 PaaS 产品,帮助应用合理高效的支持检索和多维过滤功能,有赞搜索平台目前支持了大大小小一百多个检索业务,服务于近百亿数据。 在为传统的搜索应用提供高级检索和大数据交互能...

    wh469012917 评论0 收藏0
  • 超级账本-如何贡献

    摘要:原文地址作者超级账本如何贡献个人感受,文档看的再多,学习的速度也不如参与到项目中去,深入了解实现原理和设计的初衷。维护者负责评审和合并提交评审的所有布丁,并在超级账本技术委员会的方针下指导项目的技术发展路线。 原文地址:https://www.xuanzhangjiong.to...作者:TopJohn 超级账本-如何贡献 个人感受,文档看的再多,学习的速度也不如参与到项目中去,深入...

    mengbo 评论0 收藏0
  • 【效率专精系列】善用API统一描述语言提升RestAPI开发效率

    摘要:其标准为前身是,提供强大的在线编辑功能,包括语法高亮错误提示自动完成实时预览,并且支持用户以格式撰写导入导出转换文档。 团队内部RestAPI开发采用设计驱动开发的模式,即使用API设计文档解耦前端和后端的开发过程,双方只在联调与测试时耦合。在实际开发和与前端合作的过程中,受限于众多因素的影响,开发效率还有进一步提高的空间。本文的目的是优化工具链支持,减少一部分重复和枯燥的劳动。 现状...

    tianyu 评论0 收藏0

发表评论

0条评论

lieeps

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<