开发期间表结构总会发生很多变化,导致和生成环境上的表结构不一致,手动维护表结构变化太麻烦了。 因此有什么工具可以查找出变化并生成修改 sql 吗?
1
Posdelan 2019-08-28 11:36:43 +08:00
novicat 表结构同步
|
2
glaucus 2019-08-28 11:38:18 +08:00 via iPhone
同需求,蹲一个方案
|
3
qce7 2019-08-28 11:40:29 +08:00
引入一个 sql migrate 组件
|
4
cydleadingx 2019-08-28 11:41:28 +08:00
|
6
rizon OP @cydleadingx #4 这个似乎可以。我研究下
@glaucus #2 另外我还找到了一个: https://yq.aliyun.com/articles/626851?utm_content=m_1000013851 |
7
chendy 2019-08-28 11:44:46 +08:00
liquibase,flayway …
嫌麻烦自己简单实现一个也行 |
8
rizon OP @cydleadingx #4 go 的怎么安装?生产环境没有 go,有什么好的办法安装吗?
|
10
Maboroshii 2019-08-28 11:53:16 +08:00 via Android
我也因为这个问题搞出过 bug,脑瓜疼
|
11
Fishdrowned 2019-08-28 11:55:19 +08:00
把所有结构变化写入代码,让代码自己去维护数据库结构,不要人工操作。就是 3 楼说的 migrate
|
12
thet 2019-08-28 11:56:37 +08:00 via Android
你需要 migration,表结构更改都走 migration。不想弄的话可以用 navicat 的表结构同步功能。
|
13
w292614191 2019-08-28 11:57:57 +08:00
novicat 有数据同步、数据传输、结构同步
但是一点都不好用,各种错乱,主键约束等等。 几张表玩玩还是可以的。 |
14
ben1024 2019-08-28 12:14:57 +08:00
用数据迁移 migration
|
15
Joyboo 2019-08-28 12:19:19 +08:00
migrate 简单好用
|
16
340244120w 2019-08-28 13:06:29 +08:00 via iPhone
把线上的结构导出来,然后在本地用 navicat 同步好,最后把 alert 语句复制出来 导到线上
至于说 navicat 不好使,那是因为自己偷懒用的默认选项呀 去掉几个编码啥的就好了 |
17
rizon OP |
18
blodside 2019-08-28 13:13:58 +08:00
我只知道 django 自带的 migration 挺好用的
|
19
msg7086 2019-08-28 13:56:27 +08:00 via Android
SQL migration 是一类技术的统称。
|
20
netnr 2019-08-28 13:59:49 +08:00
|
21
arrow8899 2019-08-28 14:15:32 +08:00
https://github.com/onishi/mysqldiff
表结构频繁变更,还是用 mongodb 比较合适吧 |
22
dusu 2019-08-28 14:31:05 +08:00 via iPhone
sqlyog 表同步 秒杀市面所有工具
|
23
asd123456cxz 2019-08-28 14:38:51 +08:00
我们 Mysql,oracle 库使用 flyway,优点是同步多个环境很方便,缺点是一旦维护的不到位写出很多零散的 sql 脚本不好管理
|
24
ben1024 2019-08-28 14:56:13 +08:00
|
25
IamNotShady 2019-08-28 15:10:04 +08:00
flyway
|
26
jowan 2019-08-28 15:13:24 +08:00
如楼上所说 migration 结贴
|
27
mineqiqi 2019-08-28 15:22:46 +08:00
otter+canal
|
28
usslss 2019-08-28 17:20:57 +08:00
为什么你们都管 navicat 叫 novicat 是什么梗吗
|
29
felmoon 2019-08-28 17:37:23 +08:00
flyway 还可以的
|