偶尔会遇到一些二开项目, 需要单独导出一份数据库, 用来二开.
开发完成后, 可能追加了表, 追加 /修改了字段. 大家是怎么把表结构同步到生产环境的呢?
目前我们的做法是, 把变更的字段记录下来. 等部署上线时逐一去修改.
有没有更好的办法 /工具?
![]() | 1 mgcnrx11 2020-01-11 11:19:00 +08:00 via iPhone liquibase ? |
![]() | 2 murmur 2020-01-11 11:20:42 +08:00 测试环境建表的时候就得准备 sql 语句,然后在仿真环境跑一遍,测试通过才能执行到正式环境 |
![]() | 4 liuzhaowei55 2020-01-11 11:34:25 +08:00 via Android flyway |
![]() | 5 webgrin 2020-01-11 11:36:22 +08:00 ![]() 刚刚看来,Navicat 自带有这个表结构同步工具。商业版也不贵。 |
6 felixin 2020-01-11 11:39:58 +08:00 via Android 换用 mongodb ? |
![]() | 7 295464512 2020-01-11 11:42:13 +08:00 Navicat 结构同步妥妥的 |
8 charlie21 2020-01-11 12:11:46 +08:00 via Android sql 语句直接操作阿 |
![]() | 9 jugelizi 2020-01-11 12:22:24 +08:00 哦 你们不先灰度吗 开发直接到生产 |
![]() | 10 JJstyle 2020-01-11 13:12:58 +08:00 via iPhone 我们是会把每一期的数据库更新写到部署文档去的,领导按照部署文档操作即可。 |
![]() | 11 schemacs 2020-01-11 13:35:29 +08:00 ![]() 如果是 mysql 的话 `mysqldbcompare --difftype=sql --run-all-tests --skip-row-count --skip-object-compare --changes-for=server2 [email protected]:3306 [email protected]:3308 db_online:db_offline` |
12 wwcxjun 2020-01-11 14:01:01 +08:00 用数据迁移吧(migrate). |
![]() | 13 Felldeadbird 2020-01-11 15:15:31 +08:00 我是将每次 更新的 SQL 记录在一个 版本号的 sql。传上线时执行。这样就可以确保不会遗忘了。 |
![]() | 14 tagtag 2020-01-11 16:15:24 +08:00 一直想用数据库的版本管理工具比如 flyway,但是大家都嫌麻烦。 |
15 Ravenddd 2020-01-11 17:18:47 +08:00 via Android navicat,数据库结构同步,数据同步很好用 |
![]() | 16 efaun 2020-01-12 13:34:08 +08:00 navicat +1 |