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

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

  •  
  •   flyxl · 23h 28m ago · 3746 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 离「极致好用」还有距离。

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

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

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


    最后

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

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

    链接

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

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

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