V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
rizon
V2EX  ›  MySQL

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

  •  
  •   rizon ·
    othorizon · 2019-08-28 11:31:41 +08:00 · 7910 次点击
    这是一个创建于 1916 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    至于说 navicat 不好使,那是因为自己偷懒用的默认选项呀 去掉几个编码啥的就好了
    rizon
        17
    rizon  
    OP
       2019-08-28 13:07:46 +08:00
    @qce7 #3
    @Joyboo #15
    @ben1024 #14
    @thet #12
    sql migrate、migration 叫哪个名字啊?这名字太笼统不好搜啊,有个具体点的吗?
    blodside
        18
    blodside  
       2019-08-28 13:13:58 +08:00
    我只知道 django 自带的 migration 挺好用的
    msg7086
        19
    msg7086  
       2019-08-28 13:56:27 +08:00 via Android
    SQL migration 是一类技术的统称。
    netnr
        20
    netnr  
       2019-08-28 13:59:49 +08:00
    arrow8899
        21
    arrow8899  
       2019-08-28 14:15:32 +08:00
    https://github.com/onishi/mysqldiff
    表结构频繁变更,还是用 mongodb 比较合适吧
    dusu
        22
    dusu  
       2019-08-28 14:31:05 +08:00 via iPhone
    sqlyog 表同步 秒杀市面所有工具
    asd123456cxz
        23
    asd123456cxz  
       2019-08-28 14:38:51 +08:00
    我们 Mysql,oracle 库使用 flyway,优点是同步多个环境很方便,缺点是一旦维护的不到位写出很多零散的 sql 脚本不好管理
    ben1024
        24
    ben1024  
       2019-08-28 14:56:13 +08:00
    @rizon 看你用的语言和框架
    [这是 laravel 的 migrations ]( https://learnku.com/docs/laravel/5.5/migrations/1329)
    IamNotShady
        25
    IamNotShady  
       2019-08-28 15:10:04 +08:00
    flyway
    jowan
        26
    jowan  
       2019-08-28 15:13:24 +08:00
    如楼上所说 migration 结贴
    mineqiqi
        27
    mineqiqi  
       2019-08-28 15:22:46 +08:00
    otter+canal
    usslss
        28
    usslss  
       2019-08-28 17:20:57 +08:00
    为什么你们都管 navicat 叫 novicat 是什么梗吗
    felmoon
        29
    felmoon  
       2019-08-28 17:37:23 +08:00
    flyway 还可以的
    joyeu
        30
    joyeu  
       2019-08-28 17:53:25 +08:00
    @usslss 哈哈哈,不说还没发现,一堆 novicat 233
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3174 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 13:45 · PVG 21:45 · LAX 05:45 · JFK 08:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.