十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Beekeeper Studio 深度解析:跨平台 SQL 编辑器与数据库管理器的架构、功能与本地开发指南

Beekeeper Studio 深度解析:跨平台 SQL 编辑器与数据库管理器的架构、功能与本地开发指南 Beekeeper Studio 深度解析跨平台 SQL 编辑器与数据库管理器的架构、功能与本地开发指南【免费下载链接】beekeeper-studioModern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.项目地址: https://gitcode.com/GitHub_Trending/be/beekeeper-studioBeekeeper Studio 是面向 Linux、Mac、Windows 三大桌面平台的跨平台 SQL 编辑器与数据库管理器以开箱即用、界面清爽、运行流畅为设计目标。本文以仓库官方日语文档 README-ja.md 为骨架结合仓库源码与工程配置系统梳理其支持的数据库矩阵、版本与许可模式、核心功能、UX 理念、Electron Vue 的架构组织以及从源码构建运行的完整实战流程帮助读者理解该项目并快速上手本地开发。项目概览与产品定位Beekeeper Studio 的核心定位是一款同时面向日常查询与数据库管理的桌面级 SQL 工作台。官方文档将其描述为Linux、Mac、Windows 向けのクロスプラットフォームSQLエディタデータベースマネージャー即跨平台 SQL 编辑器兼数据库管理器。在商业化模式上官方采用单一安装包 应用内升级的策略免费可用应用免费下载无需注册、无需登录、无需绑定信用卡即可使用大量核心功能开源主体仓库中绝大部分代码以 GPLv3 协议开源Community Edition付费扩展部分高级功能以合理的许可费用提供Ultimate Edition这些付费代码同样位于本仓库中但采用商业源码可用commercial source-available许可贡献开放项目明确欢迎社区贡献包括单纯的抱怨与使用反馈。从仓库结构可以印证这一模式核心开源代码位于 apps/studio/src而商业功能代码独立存放在 apps/studio/src-commercial内含backend/handlers、backend/lib、plugin-system与entrypoints等目录许可文件则同时包含 LICENSE.mdGPLv3与 LICENSE-COMMERCIAL.md。支持的数据库矩阵README-ja.md 中列出了完整的数据库支持矩阵这是判断该工具适用场景的关键依据。下表完整保留了官方表格的信息标注列、社区版可用性、付费版可用性数据库支持级别社区版付费版PostgreSQL⭐ 完整支持✅✅MySQL⭐ 完整支持✅✅SQLite⭐ 完整支持✅✅SQL Server⭐ 完整支持✅✅Amazon Redshift⭐ 完整支持✅✅CockroachDB⭐ 完整支持✅✅MariaDB⭐ 完整支持✅✅TiDB⭐ 完整支持✅✅Google BigQuery⭐ 完整支持✅✅Redis⭐ 完整支持✅✅GreengageDB⭐ 完整支持✅✅Oracle Database⭐ 完整支持—✅Cassandra⭐ 完整支持—✅ScyllaDB⭐ 完整支持经由 Cassandra 驱动—✅Firebird⭐ 完整支持—✅LibSQL⭐ 完整支持—✅ClickHouse⭐ 完整支持—✅DuckDB⭐ 完整支持—✅SQL Anywhere⭐ 完整支持—✅MongoDB⭐ 完整支持—✅Trino / Presto⭐ 完整支持—✅SurrealDB⭐ 完整支持—✅DynamoDB Beta 支持—✅Snowflake⏳ Coming Soon / 完整支持*—✅注README-ja.md 中 Snowflake 仍标注为 Coming Soon而仓库内构建文档 docs/includes/supported_databases.mdREADME 的表格正是由该文件自动生成见文档中的!-- SUPPORT_BEGIN --标记已将其更新为⭐ Full Support并新增 SAP HANA 为 Coming Soon。README-ja.md 是较早的翻译版本实际能力请以英文主文档为准。值得强调的是该表格并非静态手写README 与各语言版本文档中都有!-- Dont edit this, it gets built automatically from docs/includes/supported_databases.md --的自动生成标记说明维护者通过 docs/includes/supported_databases.md 单一数据源同步所有语言版本避免表格漂移。从源码层面可以进一步验证数据库支持的落地方式apps/studio/package.json 的 dependencies 中清晰列出了各数据库驱动——pgPostgreSQL、mysql2MySQL/MariaDB/TiDB、better-sqlite3SQLite、mssqlSQL Server、oracledbOracle、cassandra-driverCassandra/ScyllaDB、clickhouse/clientClickHouse、duckdb/node-apiDuckDB、google-cloud/bigqueryBigQuery、redis/clientRedis、mongodb与mongosh/*MongoDB、trino-clientTrino、surrealdbSurrealDB、snowflake-sdkSnowflake、aws-sdk/client-dynamodb与aws-sdk/client-redshiftDynamoDB/Redshift等驱动依赖与支持矩阵一一对应。版本与许可模式Beekeeper Studio 采用单一下载、应用内升级的版本策略Community Edition本仓库代码的主体以 GPLv3 协议授权Ultimate Edition包含额外功能如 Oracle、MongoDB、ClickHouse、DuckDB、DynamoDB、Snowflake 等数据库支持以及部分高级插件以商业最终用户许可协议EULA授权商标Beekeeper Studio 的商标文字与 Logo不属于开源范畴遵循专门的商标使用指南。官方在文档中坦诚表达了商业与开源平衡的立场我们想让 Beekeeper Studio 完全免费但构建优秀软件是艰辛且昂贵的我们认为付费版本定价合理。支持项目的最佳方式是购买付费许可若无法承担则继续使用免费版本——这也是免费版存在的原因。企业用户如果工作中使用 Beekeeper Studio官方建议让公司为团队购买许可。核心功能总览README-ja.md 用三个词概括了产品体验丝滑smooth、快速fast、真正用起来愉悦actually enjoy using it。具体功能清单如下完整继承自官方文档真·跨平台Windows、MacOS、Linux 全平台支持SQL 查询编辑器支持自动补全Autocomplete与语法高亮Syntax Highlighting多标签页界面支持多任务并行操作表格数据排序与过滤精确定位所需数据合理的键盘快捷键符合直觉的快捷操作体系查询保存将常用查询保存为以后复用查询运行历史可以找回三天前跑通的那条查询出色的深色主题内置高质量暗色主题导入/导出支持数据迁移备份/还原数据库备份与恢复JSON 数据视图以 JSON 形式查看数据以及更多。这些功能在仓库中均有对应实现例如表格数据的排序、过滤与虚拟滚动由tabulator-tables驱动apps/studio/package.json 依赖项并辅以 apps/studio/src/plugins/HeaderSortTabulatorModule.js 等 Tabulator 扩展模块JSON 数据查看与 FK 跳转在用户文档 docs/user_guide/json-sidebar.md 中有详细介绍仓库还配套了演示资源docs/assets/images/json-sidebar-1.gif导入导出、备份还原分别对应 apps/studio/src/components/importtable、apps/studio/src/components/backup 等组件目录并有 docs/user_guide/data-export.md、docs/user_guide/importing-data-csv-json-etc.md 等用户指南支撑。UX 设计理念拒绝厨房水槽式堆砌官方在 README-ja.md 中明确阐述了其 UX 哲学很多开源 SQL 编辑器/数据库管理器对功能采取全部塞进去kitchen sink的做法最终导致 UI 杂乱、导航困难。Beekeeper Studio 的出发点是想要一款好看、强大但同样易用的开源 SQL 工作台找不到于是自己造了一个。其核心指导原则是只构建用起来感觉好的软件。最低要求是快速fast、直接straightforward、现代modern——如果某个新功能会损害这一愿景就果断砍掉该功能。这一理念解释了为什么项目功能清单保持克制也让编辑器 表数据浏览 查询历史等基础能力被打磨得格外细致。架构剖析Monorepo 与两大入口README-ja.md 指出当前仓库是Monorepo结构代码分布在多个位置但关键入口点只有少数几个。结合仓库实际注意官方文档描述的是早期结构当前仓库已演进可以梳理出以下层次仓库组织根工作区package.json 定义了bks-root工作区workspaces声明了apps/*并通过 Yarn scripts 聚合了构建、测试、文档等命令如bks:build、bks:dev、test:e2e、test:unit主应用apps/studio 存放全部应用代码其自身 package.json 声明为beekeeper-studio当前版本 6.0.4包含依赖、构建脚本esbuildvite、Electron 打包配置electron-builder-config.js与各类测试配置共享组件库apps/ui-kit 是独立的 UI Kit 包beekeeperstudio/ui-kit提供跨应用复用的 Vue/TypeScript 组件根目录 package.json 中的lib:build、lib:dev即用于构建它共享代码应用内共享逻辑位于 apps/studio/src/shared官方文档写作shared/src当前仓库实际位于 apps/studio 下包含 75 个左右源文件供多个应用复用。两个入口点文档明确指出 Beekeeper Studio 有两个入口点这与当前仓库的构建配置相互印证Electron 侧原生处理官方文档描述为background.js——控制窗口显示等原生行为的 Electron 端代码。当前仓库中这部分已演进为由 esbuild.mjs 以src-commercial/entrypoints/main.ts、preload.ts、utility.ts为入口构建entryPoints配置并依赖 apps/studio/src/background/WindowBuilder.ts、apps/studio/src/background/NativeMenuBuilder.ts、apps/studio/src/background/update_manager.ts 等模块实现窗口、原生菜单与自动更新Vue.js 侧渲染进程官方文档描述为main.js——Vue 应用的入口从App.vue开始沿组件树找到所需界面。当前仓库中渲染层由 apps/studio/src/App.vue 启动。两大屏幕文档强调应用通常只有两个主要屏幕ConnectionInterface连接界面——负责连接数据库对应组件 apps/studio/src/components/ConnectionInterface.vueCoreInterface核心界面——负责与数据库交互对应组件 apps/studio/src/components/CoreInterface.vue。这两个组件之下再挂载标签页系统apps/studio/src/components/CoreTabs.vue、apps/studio/src/components/TabShell.vue、表数据视图apps/studio/src/components/tableview、查询编辑器apps/studio/src/components/TabQueryEditor.vue等。这种连接 → 交互的两段式结构贯穿了整个应用的状态流与组件组织。数据库抽象层在各数据库驱动的上层仓库以 TypeORM/knex 生态为基座依赖中包含knex、typeorm、pg-cursor游标式流式查询以及多个方言包cassandra-knex、knex-firebird-dialect、beekeeperstudio/knex-snowflake-dialect等。连接实体与校验逻辑集中在 apps/studio/src/common/appdb含Connection.ts、models/、transformers/、validators/这种统一的连接模型正是一份配置支持二十余种数据库的底层保障。本地编译与运行指南README-ja.md 提供了完整的本地开发流程适用于 Mac、Linux、Windows。以下命令完整保留官方步骤并结合当前仓库环境补充说明# 前置安装 NodeJS、NPM、Yarn # 当前仓库通过 mise.toml 固定 Node 版本为 22.22.0见仓库根目录 mise.toml # 1. Fork Beekeeper Studio 仓库点击页面右上角 fork 按钮 # 2. 检出你的 fork git clone gitgithub.com:你的用户名/beekeeper-studio.git beekeeper-studio cd beekeeper-studio/ yarn install # 安装依赖 # 3. 启动应用开发模式 yarn run electron:serve # 应用随即启动补充说明基于当前仓库的实际工程配置根 package.json 中electron:serve实际等价于bks:dev即先构建 UI Kityarn lib:build再进入apps/studio的开发服务apps/studio/package.json 中electron:serve通过concurrently同时运行 esbuild 与 vite 两个开发进程esbuild 负责打包 Electron 主进程/preload/utility入口见 apps/studio/esbuild.mjsvite 负责渲染进程的热更新若希望本地跑通测试仓库提供分层测试命令yarn test:unit单元测试、yarn test:integration集成测试需要 Docker 数据库、yarn test:e2e基于 Playwright 的端到端测试配置见 apps/studio/playwright.config.ts依赖安装采用 Yarn classic 工作区Node 版本建议与 mise.toml 中固定的 22.22.0 保持一致。常见错误OpenSSL digital envelope 报错官方文档特别提示如果启动时遇到以下错误error:03000086:digital envelope routines::initialization error则需要升级 OpenSSL。官方按平台给出了处理命令Ubuntu/Debiansudo apt-get update sudo apt-get upgrade opensslCentOS/RHELsudo yum update opensslmacOS使用 Homebrewbrew update brew upgrade openssl该错误的根源在于较新的 Node/Electron 与系统 OpenSSL 版本之间的兼容性问题升级系统 OpenSSL 后通常即可解决。如何参与贡献官方文档表明项目欢迎任何形式的社区参与——哪怕只是对应用不满的吐槽。贡献入口包括行为准则参与项目时请遵守 code_of_conduct.md构建包容、欢迎的社区贡献指南通过向项目提交贡献即表示同意 CONTRIBUTING.md 的条款零编码贡献官方提供了10 分钟无编码贡献指南不写代码也能参与提交变更将改动推送到自己的 fork 后从仓库主页发起 Pull Request提交时务必附带变更说明视觉类改动欢迎附上 GIF 演示。改哪里——定位修改点的建议官方文档给出的寻址路径非常实用所有应用代码位于apps/studio当前仓库实际共享代码位于共享目录官方文档描述为shared/src从两个入口点Electron 后台 Vue 渲染确定改动所属进程从 apps/studio/src/App.vue 沿组件面包屑追踪到目标界面——是连接界面还是核心交互界面。仓库还提供了充分的测试基建来验证改动e2e 测试目录 apps/studio/e2e 中针对连接、查询执行、结果面板、表侧边栏等均有独立的 pageActions 与测试用例如 apps/studio/e2e/tests/newConnection.test.ts、apps/studio/e2e/tests/queryExecution.test.ts单元测试位于 apps/studio/tests/unit可直接对照阅读以理解预期行为。维护者笔记Electron 升级与发布流程README-ja.md 末尾附带了面向维护者的内部笔记虽是一般读者可忽略的内容却揭示了项目工程化的关键细节这里摘录核心要点供深度参与者参考Electron 升级注意点官方坦言Electron 升级向来棘手十次有九次会弄坏构建。升级时需重点检查三件事Node 版本匹配不同 Electron 版本内置不同 Node 运行时例如 Electron 18 对应 Node 14、22 对应 Node 16全体成员需要同步升级node-abi 同步确认是否需要升级node-abi以识别新 Electron 版本——它用于在构建时为预编译原生包prebuilt packages匹配正确的 ABI需要在根 package.json 的resolutions中更新API 兼容性检查 Electron API 是否被废弃或移除确保所有与 Electron 交互的功能文件选择、窗口最大化、查询执行等仍然可用。当前仓库的 Electron 版本为39.8.10见 apps/studio/package.json devDependencies原生模块通过electron-builder install-app-deps与node-abi配合重建正对应上述维护要点。发布流程官方维护流程概括如下提升package.json中的版本号用最新发布说明替换build/release-notes.md通过git log last-tag..HEAD --oneline | grep Merge pull收集已合并的 PR提交并推送到 master打标签git tag vversion必须以v开头git push origin tagname等待 GitHub 上的 build/publish 流水线完成发布新版本在 GitHub Releases 页编辑 draft 发布说明并公开登录 snapcraft.io将各架构构建产物拖入 stable 渠道。整个流程由仓库的 CI/CD 与打包配置apps/studio/electron-builder-config.js、apps/studio/electron-builder-config-test.js支撑发布后还会同步更新文档站点。许可证与商标社区版本仓库代码GPLv3见 LICENSE.mdUltimate 版包含额外功能遵循商业最终用户许可协议EULA见 LICENSE-COMMERCIAL.md商标Beekeeper Studio 的文字商标与 Logo 不属于开源内容适用独立的商标使用指南。官方说明如果只是单纯使用应用、并未 fork 或分发代码通常无需关心商标条款。历史渊源Sqlectron-core 的继承README-ja.md 特别致谢了Sqlectron-core——Beekeeper Studio 的起点正是 Sqlectron 项目的实验性 fork其核心数据库库为项目奠定了基础。官方对 maxcnunes 与 Sqlectron 社区表达了致谢并在文档中完整保留了 sqlectron-core 的原始 MIT 许可证文本Copyright (c) 2015 The SQLECTRON Team。这段历史解释了 Beekeeper Studio 架构中的一些延续性设计底层数据库驱动层沿用 sqlectron 时代的驱动抽象思路上层则以 Electron Vue TypeORM/knex 重新构建了现代化 UI 与交互。总结Beekeeper Studio 的 README-ja.md 完整勾勒了一款开源 SQL 客户端的全貌以好用为先的 UX 理念为纲以 GPLv3 社区版 EULA 商业版的双许可模式为商业闭环以 MonorepoElectron 主进程 Vue 渲染进程 独立 UI Kit为工程形态覆盖二十余种数据库、提供查询编辑、表数据浏览、导入导出、备份还原、JSON 视图等核心能力。对开发者而言本文整理的本地构建步骤、入口点定位方法与维护者笔记可以作为从使用者走向贡献者的起点。深入阅读完整的用户指南、FAQ 与故障排查文档位于仓库 docs 目录涵盖连接配置docs/user_guide/connecting、SQL 编辑器docs/user_guide/sql_editor、导入导出docs/user_guide/data-export.md等主题仓库根目录的 CLAUDE.md 与 CONTRIBUTING.md 可进一步辅助开发协作。【免费下载链接】beekeeper-studioModern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.项目地址: https://gitcode.com/GitHub_Trending/be/beekeeper-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表