有没有什么可以在生产环境用的 mysql 表结构同步工具

2019-08-28 11:31:41 +08:00
 rizon

开发期间表结构总会发生很多变化,导致和生成环境上的表结构不一致,手动维护表结构变化太麻烦了。 因此有什么工具可以查找出变化并生成修改 sql 吗?

7901 次点击
所在节点    MySQL
30 条回复
Posdelan
2019-08-28 11:36:43 +08:00
novicat 表结构同步
glaucus
2019-08-28 11:38:18 +08:00
同需求,蹲一个方案
qce7
2019-08-28 11:40:29 +08:00
引入一个 sql migrate 组件
cydleadingx
2019-08-28 11:41:28 +08:00
rizon
2019-08-28 11:41:34 +08:00
@Posdelan #1 生产环境是隔离,本地的工具肯定不行
rizon
2019-08-28 11:43:31 +08:00
@cydleadingx #4 这个似乎可以。我研究下

@glaucus #2
另外我还找到了一个: https://yq.aliyun.com/articles/626851?utm_content=m_1000013851
chendy
2019-08-28 11:44:46 +08:00
liquibase,flayway …
嫌麻烦自己简单实现一个也行
rizon
2019-08-28 11:45:04 +08:00
@cydleadingx #4 go 的怎么安装?生产环境没有 go,有什么好的办法安装吗?
rizon
2019-08-28 11:51:25 +08:00
@chendy #7 嗯 这种成熟的方案似乎可以,liquibase,flayway 这两个哪个比较好用?
Maboroshii
2019-08-28 11:53:16 +08:00
我也因为这个问题搞出过 bug,脑瓜疼
Fishdrowned
2019-08-28 11:55:19 +08:00
把所有结构变化写入代码,让代码自己去维护数据库结构,不要人工操作。就是 3 楼说的 migrate
thet
2019-08-28 11:56:37 +08:00
你需要 migration,表结构更改都走 migration。不想弄的话可以用 navicat 的表结构同步功能。
w292614191
2019-08-28 11:57:57 +08:00
novicat 有数据同步、数据传输、结构同步
但是一点都不好用,各种错乱,主键约束等等。
几张表玩玩还是可以的。
ben1024
2019-08-28 12:14:57 +08:00
用数据迁移 migration
Joyboo
2019-08-28 12:19:19 +08:00
migrate 简单好用
340244120w
2019-08-28 13:06:29 +08:00
把线上的结构导出来,然后在本地用 navicat 同步好,最后把 alert 语句复制出来 导到线上

至于说 navicat 不好使,那是因为自己偷懒用的默认选项呀 去掉几个编码啥的就好了
rizon
2019-08-28 13:07:46 +08:00
@qce7 #3
@Joyboo #15
@ben1024 #14
@thet #12
sql migrate、migration 叫哪个名字啊?这名字太笼统不好搜啊,有个具体点的吗?
blodside
2019-08-28 13:13:58 +08:00
我只知道 django 自带的 migration 挺好用的
msg7086
2019-08-28 13:56:27 +08:00
SQL migration 是一类技术的统称。
netnr
2019-08-28 13:59:49 +08:00

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

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

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

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

© 2021 V2EX