对于已上线的网站,如何同步数据库结构。

网站有两个数据库,一个本地测试数据库,一个线上生产数据库。
最初上线时,数据库结构是一样的。
后来本地测试数据库修改了增删改了很多结构,那这时如何同步到线上数据库呢?

阅读 5k
6 个回答

如果并非太多人协作的项目,其实不用什么工具也是可以的,一个控制就好了。因为一般情况下,除了第一次上线,会大批量创建更新表结构,其他情况下最多是建几个表,在开发项目的时候实时做好记录。

当然也可以使用一些比较工具自动生成 SQL,但如果同时几个项目并行开发,就可能存在开发环境的修改并不是你当前项目的修改,同样,这也是需要团队一起确认的。不一定那么方便。

如果是完全的微服务架构,使用工具会出现问题的概率会低很多。并且因为是微服务,不用工具,直接记录改动,也是很方便的。总的来说,想仅靠工具解决问题也并不是那么容易。

为什么不用数据库迁移

用sqlyog. 一代神器.

navicat可以同步两个数据库的结构,先比较两个数据库之间的差异,然后生成同步结构的sql语句,可以直接执行,也可以保存出来另外执行。

建议使用Navicat,可以同步两个数据库的结构和数据。图形界面的操作也比较简洁易懂不容易出错。而且还有日志输出能随时监控当前状态

可以把改变的结构生成sql语句,然后放在线上执行。类似于:

ALTER TABLE `shop_goods_comment` DROP INDEX idx_orderId_goodsId_uid;

ALTER TABLE `shop_goods_comment` ADD `skuId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '商品skuid';
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题