问个数据库管理问题

2020-10-27 11:07:30 +08:00
 lcq
当前项目有两个数据库,一个开发数据库,一个线上数据,请问,就是新版本迭代时,开发数据库新增表或者修改了表字段,到时同步到线上数据库的时候,你们是怎么做协同的,方便维护这样
2773 次点击
所在节点    MySQL
11 条回复
THESDZ
2020-10-27 11:09:49 +08:00
1.开发使用的语言是否有 sql 管理的插件
2.人肉管理,记录号版本号,和要执行的脚本列表,加入打版流程中
xuanbg
2020-10-27 11:17:41 +08:00
执行 SQL 脚本啊
zpfhbyx
2020-10-27 11:19:22 +08:00
新增表没啥问题。 改表要谨慎啊。
teddy2725
2020-10-27 11:20:22 +08:00
migration sql
fly9006
2020-10-27 11:51:12 +08:00
开发数据库同步更改到生产数据库不合理吧,不应该两个环境独立开吗,开发数据库免不了各种不规范的修改
xiangyuecn
2020-10-27 12:09:45 +08:00
人肉:

1. 备份线上数据。
2. 导出线上、测试表结构。
3. beyond compare 将两个结构转换成人类肉眼可见的差异。
4. 人类肉眼根据差异一个个把变更手动同步到线上。

升级完成。如果失败:先删库再说。
anonydmer
2020-10-27 12:12:15 +08:00
有不少 database migration 的方案和工具,搜索即可;基本的原理和思想是版本管理的思路,增量式管理数据库变更
wangyzj
2020-10-27 12:16:59 +08:00
写成代码
然后 code review 的时候注意影响程度再决定是否使用人肉执行某些部分
qa2080639
2020-10-27 12:33:20 +08:00
navicat 比较结构
yeqizhang
2020-10-27 12:39:10 +08:00
难道不是 2 楼说的那样?
wilsonWei
2020-10-27 13:35:51 +08:00
将 sql 文件提交到项目中,并在项目中使用 migrate 中间件,项目运行的时候自动执行 sql 文件,这样可以确保两边的数据库环境完全一致

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

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

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

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

© 2021 V2EX