V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eephee
V2EX  ›  DevOps

有没有数据库 CICD 方面比较好的实践

  •  
  •   eephee · 2023-04-30 12:35:17 +08:00 · 3790 次点击
    这是一个创建于 566 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位有没有使用 CICD 上面来管理不同环境数据库的经验呀?

    目前在使用 GitLab CI 做了自动构建部署流水线,应用服务使用的 helm 来管理,数据库管理的话,前段时间用了一个开源的产品,但是其开源版本没法限制普通开发者接触生产数据库,所以还是想着自己拿小工具配合搭出一套流程来。

    目前主要的想法是:

    • 新建一个独立的 sql 脚本仓库,存放所有环境(以分支区分或者以子文件夹区分)和所有服务的数据库变更脚本

    • 开发者以 Merge Request 的形式提交改动数据库变更脚本,合并到特定分支之后通过 GitLab CI

    • Merge Request 的 Pipeline 立马执行一遍语法和风格检查(暂时还没找到这样的工具,各位有推荐吗)

    在迭代周期内,开发者会频繁提交修改 dev 环境的数据库变更脚本,上线的时候根据 commits 来将这些变更捡取到其他环境的数据库。同时期望这套流程也能够照顾到给同步客户的私有部署环境的数据库。

    目前还没做,具体细节没全想到,主要想看看有没有更好的方案

    第 1 条附言  ·  2023-04-30 13:40:02 +08:00
    写完忘记看一遍了,有些地方写了错别字 sorry...
    11 条回复    2023-05-05 11:25:15 +08:00
    dayeye2006199
        1
    dayeye2006199  
       2023-04-30 13:37:55 +08:00
    你需要一个带 migration 功能的 ORM 。
    然后一切都会简单很多。
    eephee
        2
    eephee  
    OP
       2023-04-30 13:42:25 +08:00
    我们后端主要是好像没用 orm ,分了二十几个服务吧,都是裸写 SQL :laugh:
    kd9yYw2RyhQwAwzn
        3
    kd9yYw2RyhQwAwzn  
       2023-04-30 13:48:54 +08:00   ❤️ 1
    可以试试 bytebase
    eephee
        4
    eephee  
    OP
       2023-04-30 13:51:49 +08:00
    @kd9yYw2RyhQwAwzn 嗯嗯,我说的开源产品就是 bytebase ,企业版使用过期之后我发现有一个核心问题:开源版本没法限制开发者访问生产数据库,所以才想着自己 DIY 一套流程的。
    lishoujun
        5
    lishoujun  
       2023-04-30 15:32:07 +08:00
    为什么不直接用他们的企业版本呢?
    dreamramon
        6
    dreamramon  
       2023-04-30 15:34:21 +08:00
    用的 flyway 很多年了,很方便。
    thevita
        7
    thevita  
       2023-04-30 16:26:10 +08:00
    看需求吧,如果你的 db 是支撑应用的,把 db 独立于代码管理更复杂吧?这种情况我也推荐用 flyway 这种方案,挺好的
    eephee
        8
    eephee  
    OP
       2023-04-30 17:24:39 +08:00
    好我去康康,感谢大佬们!
    jsq2627
        9
    jsq2627  
       2023-04-30 21:51:24 +08:00
    tianzhou
        10
    tianzhou  
       2023-05-04 17:28:20 +08:00
    Bytebase 现员工来答一个。如果是在 flyway 和 liquibase 里面挑的话,推荐用 flyway ,开发者体验更好。

    不过 Bytebase 和他们不算是同一类型的产品,相当于 GitLab / GitHub 和 Git 之间的区别吧。也可以加入用户群,搜我们的公众号 bytebase 能找到。
    eephee
        11
    eephee  
    OP
       2023-05-05 11:25:15 +08:00
    @tianzhou 感谢!老板威武,看好 bytebase!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2680 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:03 · PVG 13:03 · LAX 21:03 · JFK 00:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.