• 请不要在回答技术问题时复制粘贴 AI 生成的内容
flyxl
V2EX  ›  程序员

公司不让装 Navicat 了,就自己写了一个数据库客户端

  •  
  •   flyxl · 2 days ago · 4840 views

    DataZen 主界面

    写代码十几年了。之前也给孩子们做过几个 Android 小应用,背单词、练口算那种,他们用得还行。

    但那些说到底还是「给别人用」。DataZen 是我第一次想只为自己做一个软件。

    起因很现实:公司合规不让装 Navicat 了。DBeaver 能用,但日常用起来总觉得差点意思。正好赶上 vibe coding 这股风,心想不如自己试一把,看能不能做出一个真正工业级、能天天拿来干活的数据库客户端。

    不是玩票,也不是 demo 。就是给自己用。


    两个具体痛点

    1. 查线上问题,经常要串好几张表,还跨库

    处理投诉、排查线上问题,流程大概是这样:

    • 先查表 A ,拿到某个 ID 或状态
    • 用这个值去查表 B
    • 再查 C 、D……
    • 更麻烦的是,这些表往往不在同一个库,没法直接 JOIN
    • 只能等上一条 SQL 跑完,把结果里的字段复制出来,填到下一条 SQL 的 WHERE 里

    一条链路下来,复制粘贴十几次是常态。烦,还容易填错。

    所以做了 Workflow:用 YAML 把多步查询串起来,上一步的结果可以直接传给下一步,不同步骤还可以连不同的库。查一次,整条链路跑完。

    Workflow 编辑器

    跨数据库 Workflow

    2. 老板要数据,要报表

    做开发的都懂。临时要个数字、要张图,经常就是「帮查一下上周 xxx 」「对比一下这个月和上个月」。每次打开客户端、写 SQL 、导出、贴到 PPT 或飞书里,重复劳动很多。

    所以做了 运营看板( Dashboard ):把常用 SQL 和图表保存下来,定时刷新,多个指标放在一页。老板要看的时候,打开就行,不用每次重新查。

    运营看板

    这两个功能,都是我自己日常真的会用到的东西。不是看竞品有什么就抄什么。


    做下来的一些体会

    一路做下来,也踩了不少坑。

    很多功能远看很简单,真正做深才发现不容易。SQL 编辑器、Schema 浏览、大结果集性能、不同数据库方言差异……每个点都能耗掉不少时间。AI 相关的能力也做了(自然语言生成 SQL 、错误诊断、EXPLAIN 分析),但对我来说,Workflow 和 Dashboard 才是最先想解决的

    以前总觉得自己还算懂产品,至少比纯写后端的同事更关心体验。做着做着才发现,离「优秀的产品经理」还差得远。中间有好几次,差点去做一些「技术上很酷、但日常用不上」的东西。后来慢慢学会问一句:这个功能,是不是在解决我自己的真实问题?

    产品还是要回到用户的痛点上。对我自己来说,就是上面那两件事。


    DataZen 是什么

    DataZen 是一个开源的数据库客户端,Tauri + Rust + React ,macOS / Windows / Linux 都能用。

    除了 Workflow 和 Dashboard ,还有这些:

    日常查库

    • SQL 编辑器、Schema 树、结果集查看
    • 支持 PostgreSQL 、MySQL 、SQLite 、Redis 等,更多数据库通过 Driver 扩展
    • SSH 隧道,连接信息本地加密存储

    查询结果与图表

    AI 辅助(有,但不是全部)

    • 自然语言生成 SQL ,会带当前库的 Schema
    • SQL 报错诊断、EXPLAIN 分析
    • 支持 OpenAI 、Anthropic 、DeepSeek 和自定义接口

    AI 自然语言生成 SQL

    AI SQL 错误诊断

    AI EXPLAIN 分析

    查询结果转图表

    • 查完直接看图,折线、柱状、饼图等,可导出 PNG/SVG

    多种图表类型

    MCP

    • 可以作为 MCP Server ,把数据库能力暴露给 Cursor 等外部工具
    • 也可以接外部 MCP Server 到 AI Chat
    • 支持无头 stdio 模式

    Driver 插件

    • 数据库能力通过 Driver API 扩展,社区可以贡献新数据库支持

    还有 ER 图、Schema Diff 、数据同步、导出等,文档里都有。

    ER 图

    Schema Diff

    本地优先,开源免费

    • 不用注册账号
    • 连接和凭据留在本机
    • GPLv3 开源

    还不完美

    说实话,DataZen 离「极致好用」还有距离。

    很多功能能用,但还不够顺手。交互细节、边界情况、各数据库的打磨,都需要时间,也需要更多人的使用反馈。

    我一个人做,速度有限。所以开源了——不是因为它已经很好,而是希望有人一起把它做好。

    如果你也天天和数据库打交道,欢迎:


    最后

    做一个「只为自己」的软件,听起来挺理想,过程其实挺磨人的。会怀疑值不值得做,会在细节上卡住,也会在产品方向上走弯路。

    但如果有一个你自己每天都会遇到的问题,值得花时间做一个能用的版本出来。先能用,再慢慢改。

    链接

    也想听听大家:你平时用数据库客户端,最烦的一件事是什么? 这个对我比任何功能清单都有用。

    41 replies    2026-08-30 23:12:05 +08:00
    xooass
        1
    xooass  
       2 days ago
    最烦公司的数据库限制 IP 又不想整机切公司内网
    xooass
        2
    xooass  
       2 days ago
    说的是回家后
    flyxl
        3
    flyxl  
    OP
       2 days ago via Android
    @xooass 能 ssh 回公司电脑不?
    zencitta
        4
    zencitta  
       2 days ago
    自己手写还是 AI ?
    sanhys
        5
    sanhys  
       2 days ago
    @zencitta 原汁原味的 AI
    ijrou
        6
    ijrou  
       2 days ago
    wuzhi1234
        7
    wuzhi1234  
       2 days ago   ❤️ 2
    dbx 很好用
    Addison2W
        8
    Addison2W  
       2 days ago via Android
    我现在开发基本不碰数据库,中间件,代码,K8S ,服务器,各个角落 AI 都能触碰到,一个对话框能解决开发所有的事情。
    Dispatcher
        9
    Dispatcher  
       1 day ago
    日本这边好多会社在用 a4 ,竟然是 delphi 写的。
    flyxl
        10
    flyxl  
    OP
       1 day ago via Android
    @wuzhi1234 确实很强
    flyxl
        11
    flyxl  
    OP
       1 day ago via Android
    @zencitta 用的是 cursor ,但基本上只能用 opus 4.6 和 composer2.5 ,我比较自豪的是代码质量绝对不差,系统架构可扩展性比较好。整个开发过程走下来,感觉我这个老码农还能在 ai 浪潮下再抗几年,同时也趁着这个项目多积累一些开发 agent 的经验
    flyxl
        12
    flyxl  
    OP
       1 day ago via Android
    @Addison2W ai 现在确实很强大,但我们有明确要求 ai 不能碰生产数据,避免敏感信息泄露
    kneo
        13
    kneo  
       1 day ago via Android
    AI 用多了还真以为是自己写的啊……
    jkjoy
        14
    jkjoy  
       1 day ago
    你这帖子都一股子 AI 味儿
    vultr
        15
    vultr  
       1 day ago via Android
    能用 AI 写出好东西也是能力,强。
    z1154505909
        16
    z1154505909  
       1 day ago
    感觉 workflow 有点类似 API 工具的前置操作,后置操作
    zh3256
        17
    zh3256  
       1 day ago via Android
    @flyxl 数据库前面套一层脱敏 proxy ,AI 连上也能用
    而且怕泄露敏感数据,如果对人不做管理,能直连数据库,也没解决敏感的问题,人可以下载数据。
    wangweiggsn
        18
    wangweiggsn  
       1 day ago
    如果是我,这需求我肯定就让 AI 写 python 脚本做了。当然,造轮子也值得鼓励,也各有各的乐趣。
    iexplore123
        19
    iexplore123  
       1 day ago
    感觉这俩需求用 n8n 搭配个数据面板也行啊
    linauror
        20
    linauror  
       1 day ago
    workflow 功能感觉不错
    dot2
        21
    dot2  
       1 day ago
    相比 DBX 有什么优点呢?我现在用 DBX 感觉挺好用的
    datadump
        22
    datadump  
    PRO
       1 day ago
    想问一下用的什么模型,多少 token
    fstab
        23
    fstab  
       1 day ago
    可惜了,出来太晚了。

    从社区和公众号看,DBX 现在妥妥的免费榜第一了。。
    flyxl
        24
    flyxl  
    OP
       1 day ago via Android
    @fstab 对我个人来说,这确实是个小小的遗憾,但更重要的是坚持初心,用自己所学为自己做点东西,同时也欢迎提意见提 pr
    gdfsjunjun
        25
    gdfsjunjun  
       1 day ago
    很早之前用 Navicat ,但是之后转 DataGrip 了,发现更好用,而且界面风格与 IDEA 一致,后端开发无缝切换
    flyxl
        26
    flyxl  
    OP
       1 day ago via Android
    @datadump 用的 cursor 的年费套餐,每个月 500 次请求,不过今天套餐到期,不能再按年费续期了,中间薅了 openrouter 和 opencode 上的 ox alpha 免费额度,主力模型还是 cursor 上的 opus4.6 和 composer2.5 ,具体 token 消耗没有统计
    flyxl
        27
    flyxl  
    OP
       1 day ago via Android
    @linauror 我们开发和测试同学也很喜欢这个功能
    Kimipoker
        28
    Kimipoker  
       1 day ago
    我用它的功能是各个数据库跨类型之间的数据迁移.好像 Navicat 才好用点
    flyxl
        29
    flyxl  
    OP
       1 day ago via Android
    @Kimipoker 是的,毕竟老牌玩家,积累深厚。其实我在实现数据迁移的过程中踩了不少坑,尤其是不同数据库方言差异这块
    caola
        30
    caola  
       1 day ago
    win 版没有 portable 的包吗,都是安装包的…
    jake4545
        31
    jake4545  
       1 day ago   ❤️ 1
    DBeaver 开源的也还不错啊
    feidao158
        32
    feidao158  
       1 day ago
    可以看看 dbx
    liuliuliuliu
        33
    liuliuliuliu  
       1 day ago
    这个领域,目前没发现超过 datagrip 的
    PopRain
        34
    PopRain  
       1 day ago
    AI 时代人手一个 DB TOOLS ,搞得我也蠢蠢欲动,先 star 吧
    sir283
        35
    sir283  
       1 day ago
    dbeaver 也可以啊,还是跨平台开源的。不过现在这个时代,基本人手一个 custom tool 了,也没啥了。
    Greendays
        36
    Greendays  
       1 day ago
    navicat 真挺厉害的,我买了 JetBrains 全家桶,里面有个 DateGrip 也是数据库客户端,但用起来完全和 Navicat 两回事。
    itechify
        37
    itechify  
       1 day ago
    @liuliuliuliu datagrip 不知道怎么自动转格式,例如时间戳毫秒,查询出来自动转到某个时区的时间跟格式化出来
    mackyuqi
        38
    mackyuqi  
       1 day ago
    @liuliuliuliu #33 这个商用不免费呀,一般公司都不让用😅
    knktc
        39
    knktc  
       1 day ago
    @gdfsjunjun 去年还是前年有个免费领订阅的活动来着,领了之后用到现在,基本也不用升级
    keenkiller
        40
    keenkiller  
       1 day ago via Android
    其实我平时都是用命令行,毕竟从 k8s pod 里连数据库肯定要用命令行,其他的方式运维不让连
    yuancoder
        41
    yuancoder  
       7h 47m ago
    @liuliuliuliu 同意, 谁能复刻一个开源版的 😅
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   945 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 132ms · UTC 23:00 · PVG 07:00 · LAX 16:00 · JFK 19:00
    ♥ Do have faith in what you're doing.