有没有数据库 CICD 方面比较好的实践 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eephee
V2EX    DevOps

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

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

    各位有没有使用 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     Solana     2980 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 13:33 PVG 21:33 LAX 06:33 JFK 09:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86