多人开发,数据库结构怎么同步?

2020-01-07 10:17:55 +08:00
 fanpei0121

请问大佬流行的解决方案有哪些啊?

5498 次点击
所在节点    问与答
36 条回复
adrianXu
2020-01-07 11:59:56 +08:00
java 有 flyway liquibase 这种工具
soli
2020-01-07 12:00:11 +08:00
建表 SQL 写在 sql 文件中。
所有 sql 文件作为源码文件提交版本库。
剩下的就和代码一样的流程了。
BALDOOR
2020-01-07 12:02:44 +08:00
我们用文件把新增 /修改的 sql 记录下来
运行时出错时,通过分析 sql 报错信息
再去查找文件去修正数据库
目前运行情况良好,感觉还挺 nice 的
fx
2020-01-07 12:34:47 +08:00
Migration
fx
2020-01-07 12:35:11 +08:00
af463419014
2020-01-07 12:40:05 +08:00
建议规范一下开发流程
开发前先写设计文档,包括技术方案和表结构设计等,然后大家评审,评审完成后再进行代码开发
一般白天写文档,晚上花 1-2 小时完成评审,也就多出一天的研发周期,能为将来避免很多不必要的麻烦
lygmqkl
2020-01-07 13:36:35 +08:00
migrate
phpcxy
2020-01-07 13:46:53 +08:00
写数据库迁移文件
linxl
2020-01-07 13:59:12 +08:00
肯定得连接同一个数据库, 其它的无论什么方案都不如同一个数据库来得方便, 而且只是开发阶段
minigo
2020-01-07 14:02:20 +08:00
用 orm 的没这个问题,用纯 sql 的链同一个库吧。不然开发完你会后悔的
VictorJing94
2020-01-07 15:40:06 +08:00
@fanpei0121 楼下老哥都说问题了...你们流程不对
另外我怎么没收到提示...站长帮忙看看 @livd
agagega
2020-01-07 16:02:12 +08:00
原来这年头还有后端框架不用 Migration 的吗😂
nanwangnongfu
2020-01-07 17:34:30 +08:00
总结一下
1,链接同一个测试库
2,使用 migratiion,更新代码,执行 migration 命令
3,更改写入 sql 文件,更新代码,手动执行
dcalsky
2020-01-07 17:56:45 +08:00
这个问题之前研究过。

## Migration
Code first 的解决方案(有编程语言依赖):依赖你 ORM 提供的 migration 工具,如楼上提到的 Django,sqlalchemy 等。

Basebase first 解决方案(无编程语言依赖):sqitch 或者 flyway,都是工具,别管用什么语言开发的。

## 多人协作

肯定要用 git 管理这些 migrations,然后建议开一个数据库的线上 beta 版本,等稳定了再 migrate 到 prod 版本上。

流程一般是:开发者 A 改动了 schema,生成 migrations 并 push 到仓库 -> 开发者 B pull 这些 migrations,然后 migrate 到本地的数据库。至于你们什么时候想 push 到 beta,以及 CI/CD 的其他事情,别的贴再讨论吧。
Leigg
2020-01-07 20:08:44 +08:00
不要瞎搞,这哪有完美方案,到时候一堆问题,公司网装一个公共的 mysql 才是办法
zhuzhibin
2020-01-08 02:07:42 +08:00
都说 migration,那我请教下随着项目变大业务变更大,导致迁移文件越来越多,要怎么维护比较好?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/635692

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX