数据库表创建失败时,应依次检查存储引擎兼容性、授予数据目录读写权限、启用只读模式临时启动、切换至外部postgresql并预建表、排查selinux/defender策略拦截。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在安装 WorkBuddy 过程中遇到数据库表创建失败的提示,且错误日志指向存储引擎不兼容或权限控制异常,则问题通常发生在 WorkBuddy 内置 SQLite 或 PostgreSQL 初始化阶段。以下是解决此问题的步骤:
一、确认内置数据库存储引擎兼容性
WorkBuddy 安装程序在初始化本地数据库时,会根据系统环境自动选择 SQLite(默认)或 PostgreSQL(企业版可选)。若系统缺少对应运行时依赖或引擎被禁用,将导致建表语句执行中断。
1、打开命令行终端(Windows 使用 PowerShell,macOS/Linux 使用 Terminal)。
2、输入 sqlite3 --version 并回车,确认返回版本号 ≥ 3.24.0;若提示“command not found”,说明 SQLite 未预装或路径未加入环境变量。
3、若使用 PostgreSQL 模式,执行 psql --version 验证服务端版本,确保 ≥ 12.0;同时检查 pg_isready -U workbuddy -d workbuddy_db 是否返回“accepting connections”。
4、如版本过低或未安装,Windows 用户请从 sqlite.org 下载预编译二进制包并解压至 C:\workbuddy\bin;macOS 用户执行 brew install sqlite3 postgresql;Linux 用户运行 sudo apt-get install sqlite3 libsqlite3-dev postgresql-client。
二、授予数据库文件所在目录完整读写权限
WorkBuddy 默认将 SQLite 数据库文件(workbuddy.db)存于用户主目录下的 .workbuddy/data/ 子路径。若该路径因系统策略被锁定(如 macOS 全盘访问限制、Windows 受控文件夹保护),建表操作将因“Permission denied”失败。
1、定位数据库根目录:Windows 路径为 %USERPROFILE%\.workbuddy\data\,macOS 为 ~/.workbuddy/data/,Linux 为 ~/.workbuddy/data/。
2、Windows 用户右键该 data 文件夹 → “属性” → “安全” → “编辑” → 选中当前用户 → 勾选“完全控制” → 点击“应用”。
3、macOS 用户打开“访达”,前往该路径,右键 data 文件夹 → “显示简介” → 展开“共享与权限” → 点击右下角锁图标解锁 → 将当前用户权限改为“读与写” → 关闭窗口。
4、执行 chmod 755 ~/.workbuddy/data(Linux/macOS)或在 PowerShell 中运行 icacls "$env:USERPROFILE\.workbuddy\data" /grant "$env:USERNAME:(OI)(CI)F"(Windows)以递归授权。
三、绕过建表阶段启用只读模式临时启动
当数据库初始化持续失败但需紧急验证客户端功能时,可强制跳过建表流程,使 WorkBuddy 以只读缓存模式加载基础配置,避免阻塞主进程启动。
1、关闭所有 WorkBuddy 进程,包括系统托盘残留项。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
2、进入 WorkBuddy 安装目录,找到 config.yaml 或 appsettings.json 文件。
3、将 database.initialization_mode 字段值由 default 修改为 skip_create_table。
4、保存文件后,在终端中执行 workbuddy --no-db-init(Linux/macOS)或 WorkBuddy.exe --no-db-init(Windows)启动。
四、切换至外部 PostgreSQL 实例并预建表结构
若本地 SQLite 权限或引擎始终无法修复,可改用独立 PostgreSQL 实例托管 WorkBuddy 元数据,通过预执行 DDL 脚本规避安装时动态建表风险。
1、登录 PostgreSQL 服务器,使用 psql -U postgres 创建专用数据库:CREATE DATABASE workbuddy_prod OWNER workbuddy;
2、访问 WorkBuddy 官网文档页,下载对应版本的 schema-postgres-v3.2.1.sql 初始化脚本。
3、执行 psql -U workbuddy -d workbuddy_prod -f schema-postgres-v3.2.1.sql 完成表结构预部署。
4、修改 config.yaml 中 database.type 为 postgresql,填写 host、port、username、password 和 database 名称,保存后重启 WorkBuddy。
五、检查 SELinux 或 Windows Defender 策略拦截
部分企业环境启用强制访问控制(SELinux on Linux、Windows Defender 应用控制),会阻止 WorkBuddy 进程对数据库文件执行 mmap() 或 ftruncate() 系统调用,导致建表事务回滚。
1、Linux 用户执行 sestatus 命令,若输出为 “enabled”,则临时设为 permissive 模式:sudo setenforce 0。
2、Windows 用户打开“Windows 安全中心” → “应用控制策略” → “基于规则的策略” → 查看是否启用“仅允许 Microsoft 签名的应用”;如启用,在策略设置中添加 WorkBuddy 安装目录(如 C:\Program Files\WorkBuddy\)为例外路径。
3、macOS 用户检查“系统设置 → 隐私与安全性 → 完全磁盘访问”列表中是否已包含 WorkBuddy.app,若缺失则手动拖入并勾选。










