V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
seagull7558
V2EX  ›  程序员

数据库的迁移/版本控制 工具

  •  
  •   seagull7558 · 2022-12-17 09:26:10 +08:00 · 2858 次点击
    这是一个创建于 740 天前的主题,其中的信息可能已经有所发展或是发生改变。
    spring cloud 项目

    经常发布新版本 每次都是手工记录版本发布的数据库变更 人工操作实在是很危险

    所以考虑工具实现 简单搜索了下 Migration

    1. Migration 是指 Flyway 吗?

    各位同学还有其他工具推荐吗?
    15 条回复    2023-04-18 09:09:07 +08:00
    datoujiejie221
        1
    datoujiejie221  
       2022-12-17 09:46:32 +08:00 via iPhone
    可以看下 archery
    xuanbg
        2
    xuanbg  
       2022-12-17 09:47:23 +08:00
    我们都是 sql 脚本实现变更。
    jamesxu
        3
    jamesxu  
       2022-12-17 09:58:15 +08:00 via iPhone
    我们都用 flyway ,挺方便
    kaneg
        4
    kaneg  
       2022-12-17 11:01:22 +08:00
    如果数据库变更频繁,flyway 可以帮你自动应用最新的变更。
    zhenjiachen
        5
    zhenjiachen  
       2022-12-17 11:04:46 +08:00 via iPhone
    flyway 开源版已经开始不支持发布超过 5 年的数据快了,虽然可以降低版本解决,但是后面可能到时候 spring boot 不支持低版本的 flyway 了。使用起来很简单,但是如果用的是低版本数据库还是不建议使用。
    optional
        6
    optional  
       2022-12-17 13:54:07 +08:00
    go 和 python 有几个工具,凑活用用。
    实际上体验最好的还是之前 laraval 的那个。
    wallace1z
        7
    wallace1z  
       2022-12-17 17:03:44 +08:00
    liquibase 了解一下?
    kytrun
        8
    kytrun  
       2022-12-17 22:41:11 +08:00 via Android
    navicat 结构同步
    wellerman
        9
    wellerman  
       2022-12-17 23:44:52 +08:00
    Laravel Eloquent yyds
    yixuling
        10
    yixuling  
       2022-12-18 00:26:47 +08:00
    推荐 liquibase
    tianzhou
        11
    tianzhou  
       2022-12-21 01:12:33 +08:00
    https://bytebase.com 有完整的 GUI ,由迁移历史,也能做 GitOps
    seagull7558
        12
    seagull7558  
    OP
       2022-12-21 09:20:55 +08:00
    @tianzhou 好像不错诶 少见的 DB CICD 先试用下开源版本
    seagull7558
        13
    seagull7558  
    OP
       2022-12-21 11:01:36 +08:00
    @tianzhou

    对于开源项目 我态度一直是 鼓励+认可+敬佩 但是对开源版本刀的有点狠 老黄都得向你学习
    但是 emmmm 不太符合需求 UI 蛮舒服,审核流程蛮好,编辑器也很棒 简单对比下 liquibase

    1. 目前变动项分为结构和数据 liquibase 拆分为两文件也好或是+labels 也好 执行更新的时候可以区分开业务和初始化两种不同得类型 譬如在一个新环境上快速拉起一套结构和数据(--labels=init 或是直接指定文件)
    2. 甚至没办法将开发环境创建的数据库同步到测试环境
    3. 库表同步限制太大了 只能到表
    4. 暂时没看到文档中描述如何介入应用的 CI/CD
    5. 现在的同步和回滚是基于变动列表来实现的吗? rollback 语句是自己生成的吗?

    保命: 认可+鼓励+敬佩 以上只是建议 不过我还没付费 你们可以忽略建议
    tianzhou
        14
    tianzhou  
       2023-04-16 19:07:50 +08:00
    @seagull7558 我们刚对免费版定位做了一次调整,开放了一系列本来只有团队付费版才有的能力,希望可以服务更多的团队。具体到功能点上:

    1. 不再限制实例数和用户数
    2. 有 RBAC
    3. 所有的 100+ SQL 审核规则
    seagull7558
        15
    seagull7558  
    OP
       2023-04-18 09:09:07 +08:00
    @tianzhou 加油~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5514 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:37 · PVG 11:37 · LAX 19:37 · JFK 22:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.