## 现象 Linux 安装包只带构建机(Ubuntu)对应的 Prisma 查询引擎 `debian-openssl-3.0.x`。在使用 OpenSSL 1.1 的发行版,以及 Fedora / RHEL / CentOS / openSUSE 系(Prisma 会映射到 `rhel-*` 目标,即使装的是 OpenSSL 3)上,Prisma 找不到引擎,数据库初始化失败。由于错误被吞掉,表现更可能是依赖数据库的功能全部不可用,而不是启动时明确报错。 ## 复现步骤 1. 在 Fedora 或 RHEL 9(或 Debian 11)上运行 Linux 版 AppImage。 2. 打开应用、尝试添加服务商或新建任务。 3. 预期日志出现 `could not locate the Query Engine` 类错误,相关功能不可用。 注:读代码推导,未在真实发行版上实跑。 ## 位置 - `src/core/infrastructure/db/schema.prisma:7-9`:`generator client` 未配置 `binaryTargets`,默认只生成构建机的 native 引擎。 - `.github/workflows/release.yml:29-34`:Linux 只在 `ubuntu-latest` / `ubuntu-24.04-arm` 构建。 - 数据库初始化失败被吞:`initDatabase` 返回 false(`db/index.ts:73-76`),主进程 `index.ts:460` 不检查返回值。 - 未合并的 PR #84 不改 schema,其加载校验在同一台构建机上运行,发现不了此问题。 ## 风险等级 高(受影响发行版上功能不可用,且没有明确报错)。 ## 产品判断 Linux 用户占比不大,但 Fedora / RHEL 系是常见桌面发行版,一旦命中就是整体不可用、用户无从排查。修复成本低(配置 binaryTargets + 显式报错),有必要修。 ## 建议修法 - 按架构配置 `binaryTargets`(x64、arm64 分开,覆盖 `debian-openssl-1.1.x`、`debian-openssl-3.0.x`、`rhel-openssl-1.1.x`、`rhel-openssl-3.0.x` 等),注意不要触发 `verify-package-arch` 的架构检查误报,落地前先验证。 - 数据库初始化失败时给用户明确报错,而不是静默继续。 - 发包校验或 CI 增加非 Ubuntu 环境(如 Fedora 容器)的引擎加载检查。 ## 验收标准 - Linux x64 / arm64 包内包含所需各目标的 Prisma 引擎,且架构正确。 - 在 Fedora(OpenSSL 3)和一个 OpenSSL 1.1 发行版上 AppImage 能正常初始化数据库、完成一次转换。 - 数据库初始化失败时界面有明确提示。 - Ubuntu、macOS、Windows 包不回归。
Activity
fix: Linux 包带上各发行版的 Prisma 引擎,初始化失败时界面给出提示 (#86) (#93)