1 分•作者: loughnane•30 天前
2 分•作者: flyxl•30 天前
由于合规政策,我的公司不再允许使用 Navicat。DBeaver 可以用,但我并不喜欢它。 我遇到了两个反复出现的问题。 首先,生产环境的调查通常需要跨多个数据库执行多个查询。我会查询一个表,将 ID 复制到另一个查询中,等待结果,然后重复这个过程几次。我开始想,有没有一种方法可以在不为每种情况编写单独脚本的情况下处理这个问题。如果我有一个简单的表单,可以输入我已知的查询参数,然后运行一系列 SQL 语句呢?顺着这个思路,我最终构建了 Workflow。 Superset 是一个很棒的工具,但作为一个主要需要为老板准备几个报告的开发者来说,部署和维护一个完整的 Superset 堆栈感觉有点大材小用。所以我最终为保存的 SQL 查询和报告构建了一个简单的 Dashboards 功能。 当 Navicat 不再是公司允许的选项时,我开始寻找一个开源的替代方案。我也想解决上面描述的两个反复出现的问题。这最终促使我构建了 DataZen,一个使用 Tauri v2、Rust、React 和 TypeScript 构建的、GPLv3 许可的桌面数据库客户端。 它还包括: * SQL 编辑器和模式浏览器 * 使用当前模式作为上下文的自然语言 SQL * SQL 错误诊断和 EXPLAIN 分析 * 查询结果的图表 * MCP 服务器/客户端支持 * 可扩展的数据库驱动程序 API * 模式差异、数据同步和数据传输工具 核心数据库工作流程无需 AI 即可运行。一旦配置了 AI 提供商,它就可以利用该提供商,并访问活动模式、查询错误、执行计划和工作流程上下文来扩展相同的工作流程。它可以起草 SQL、诊断故障、解释计划以及自动化多步工作流程的某些部分。启用 AI 后,它会使用用户配置的提供商以及 DataZen 中已有的数据库上下文。 这是早期 v0.1.0 版本,仍有一些不完善之处。我特别希望得到关于以下方面的反馈: * YAML 是否是跨数据库工作流的良好接口 * 只读访问和写入批准应该如何工作 * 数据库驱动程序的可扩展性在实践中是否有用 * 哪些日常数据库任务仍然不必要地重复 GitHub: <a href="https://github.com/flyxl/datazen" rel="nofollow">https://github.com/flyxl/datazen</a> 下载: <a href="https://github.com/flyxl/datazen/releases" rel="nofollow">https://github.com/flyxl/datazen/releases</a>