☰
改了 pageSize 重启却原样不动?Beekeeper Studio 配置文件的 4 个位置一次说清
2026/9/30 1:41:45 网站建设 项目流程

改了 pageSize 重启却原样不动?Beekeeper Studio 配置文件的 4 个位置一次说清

【免费下载链接】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

Beekeeper Studio 是一个管理 MySQL、Postgres、SQLite 等数据库连接的桌面客户端。想把界面、快捷键调成自己喜欢的样子,却不知道配置文件该放哪,就是本文要解决的事:从个人定制到企业统管,一共 4 条路径,以及它们如何合并生效。

从"改了没生效"说起

先还原一个常见场景:你在某个 INI 文件里写了pageSize = 200,重启应用,表格还是每页 100 行。九成概率是文件放错地方了。Beekeeper Studio 到哪些目录找配置,是写死在源码里的,没法让它"换个地方再找找",查找位置不可配置。

先补一句背景:这里的 INI 就是[节名]加key = value的纯文本,什么依赖都不需要。另外文件名分两套——用户级叫user.config.ini,管理员级叫system.config.ini,别把这两个名字搞混,放对内容但用错文件名,等于没放。

三平台路径,按"你要改谁"来查 📍

查路径之前先问一句:你是只改自己的机器,还是要统管一批机器?只改自己 → 动用户文件;IT 管理员统一管控 → 动管理员文件。想清楚"改谁",再对着平台查表就行:

角色平台配置文件路径
用户(个人)macOS~/Library/Application Support/beekeeper-studio/user.config.ini
用户(个人)Linux~/.config/beekeeper-studio/user.config.ini
用户(个人)Windows%APPDATA%\beekeeper-studio\user.config.ini
管理员(IT)macOS/Library/Application Support/beekeeper-studio/system.config.ini
管理员(IT)Linux/etc/beekeeper-studio/system.config.ini
管理员(IT)WindowsC:\ProgramData\beekeeper-studio\system.config.ini

两个细节:Windows 的%APPDATA%展开后就是C:\Users\<用户名>\AppData\Roaming;管理员目录取自ProgramData环境变量,没设置时回退到C:\ProgramData。还有个表格外的重要特例——Windows 便携版:一旦设置了PORTABLE_EXECUTABLE_DIR,整套数据(包括配置目录)会挪到可执行文件旁边的beekeeper_studio_data目录里,官方文档的表格里没提这一点。

开发者的第 4 个文件:local.config.ini(开发期才存在)

如果你是从源码跑应用,还有个别人用不上的文件:把local.config.ini放在项目根目录即可,仓库里已带了一份示例apps/studio/local.config.ini,内容就一行注释;override default config here,照着往里填。

它的特殊性在于"一个顶俩":开发期它同时取代用户文件和管理员文件。开关是 Electron 的app.isPackaged——为false时(源码里对应platformInfo.isDevelopment),加载逻辑就指向local.config.ini;打包好的正式版则照旧读user.config.ini。所以别指望在已安装的客户端上找到它的身影。

谁说了算:Default → User → Admin

三层文件的加载顺序是:默认基线default.config.ini(随应用分发)→ 用户配置 → 管理员配置。谁压过谁,答案在apps/studio/src/common/bksConfig/BksConfigProvider.ts里那一行:

_.merge({}, defaultConfig, userConfig, systemConfig)

lodash 的merge是后面的参数覆盖前面的,所以优先级链是 管理员 > 用户 > 默认。这也是企业玩法的底气:IT 只要往机器级下发一份system.config.ini,个人文件里的设置就被强制压住了。

加载链路还有两处值得知道:apps/studio/src/common/bksConfig/mainBksConfig.ts里的resolveConfigDir()决定用户目录,生产环境取platformInfo.userDirectory,开发环境取项目根目录(好去读local.config.ini);loadConfig()则按平台 switch 出管理员目录,并在非开发环境下把打包自带的default.config.ini复制一份到用户目录,方便你随时对照。而userDirectory本身来自mainPlatformInfo.ts里 Electron 的app.getPath("userData"),所以 macOS 是~/Library/Application Support、Linux 是~/.config、Windows 是 Roaming 目录。

动手:第一次写 INI 🛠️

一个可以直接照抄的最小示例:

; 我的 Beekeeper Studio 配置 ; 分号开头的行是注释 [ui.tableTable] pageSize = 200 [keybindings.queryEditor] primaryQueryAction[] = ctrlOrCmd+enter

语法上就三件事:节标题用[方括号]包起来,=两侧留空格,;开头是注释。最后提醒一个高频坑:改完必须完全退出应用再重新打开,热重载不算数,配置只在启动时读一遍。

不生效?按这个顺序自查

  1. 位置对不对:对照上面那张表,确认文件在当前系统、当前角色的正确目录里。
  2. 语法有没有毛病:节名忘了方括号、=拼成=、注释写进了值里,都会让整份文件读不出来。
  3. 真的重启了吗:完全退出进程再启动,别只是关窗口。
  4. 键名拼写:节名和键名拼错一个字,应用会当作不存在,静默忽略。
  5. 读权限:确认 Beekeeper Studio 进程有权限读那个文件,尤其是管理员目录。
  6. 深度排查:开启调试日志看BksConfig这个 scope,每个配置文件加载时都会留痕。如果日志里出现unrecognized-key类型的警告,说明有个键既不在default.config.ini也不在deprecated.config.ini里,基本就是键名写错了。

收尾:记住一个画面

想象三层文件叠在一起:默认值随应用出厂,用户层是你的,管理员层是公司发的,开发期再多一个local层顶替上面两层——后写的覆盖先写的,改完必须重启。想往下深挖,三条路:翻apps/studio/default.config.ini看全量配置项,读apps/studio/src/common/bksConfig/mainBksConfig.ts看路径解析,读apps/studio/src/common/bksConfig/BksConfigProvider.ts看合并逻辑;日常使用的话,docs/user_guide/configuration.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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询