# PDManer **Repository Path**: tiptop_zjf/pdmaner ## Basic Information - **Project Name**: PDManer - **Description**: PDManer 是桌面端关系数据库建模工具,基于 React、Electron 和 Java 构建。当前版本支持以图形界面维护数据表、字段、索引、视图、数据字典和 ER 图,生成 DDL 与程序代码,并通过实时 MCP Bridge 让 Codex 操作正在运行的 PDManer 实例。 - **Primary Language**: JavaScript - **License**: MulanPubL-2.0 - **Default Branch**: master - **Homepage**: https://my.oschina.net/skymozn/blog/5515012 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 982 - **Created**: 2025-07-09 - **Last Updated**: 2026-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDManer PDManer 是桌面端关系数据库建模工具,基于 React、Electron 和 Java 构建。当前版本支持以图形界面维护数据表、字段、索引、视图、数据字典和 ER 图,生成 DDL 与程序代码,并通过实时 MCP Bridge 让 Codex 操作正在运行的 PDManer 实例。 当前应用版本:`1.0.0` ## 功能 - 数据库模型、表、字段、索引、视图、数据字典和 ER 图维护。 - MySQL、PostgreSQL、Oracle、SQL Server 等数据库方言,以及可扩展的数据类型和数据域。 - DDL、Java、MyBatis、MyBatis Plus、C# 等模板代码生成。 - PDM/PDMan 文件导入、Word 文档与项目相关内容导出、模型版本管理。 - 通过实时 MCP Bridge 让 Codex 查询、创建和更新项目、表、字段和索引,预览 DDL 并导出模板代码。 ## 环境 - Node.js 24 已验证。旧版 Webpack 在 Node 17 及以上需要 `--openssl-legacy-provider`,构建命令已内置该兼容参数。 - npm。 - macOS 打 macOS 包需要可用的 Apple 签名身份;没有签名身份时可按 Electron Builder 的本地配置处理。 - Windows 包建议在 Windows 构建;macOS 交叉构建 Windows NSIS 包需要项目缓存中的 Wine 和 NSIS 工具。 安装依赖: ```bash npm install ``` ## 本地开发 ```bash npm start ``` 该命令启动 Webpack 开发服务和 Electron。生产前端构建: ```bash npm run build ``` ## 版本 根目录 `package.json` 是唯一版本来源。修改版本时使用: ```bash npm version 1.0.1 --no-git-tag-version ``` `version` 生命周期会自动同步 `app/package.json` 和 `package-lock.json`,避免应用内版本、安装包文件名和更新元数据不一致。 ## 打包 | 命令 | 目标 | | --- | --- | | `npm run package-mac` | macOS ARM64 DMG | | `npm run package-mac:x64` | macOS Intel DMG | | `npm run package-win` | Windows x64 NSIS 安装包 | | `npm run package-linux` | Linux ARM64 和 x64 DEB 包 | | `npm run package-all` | 按当前主机能力构建 macOS、Windows 和 Linux 包 | 打包产物写入 `dist/`。Windows 仅维护 x64,不再提供 32 位安装包。 构建会清理 `app/build/` 中历史生成的 hash 文件,避免旧 bundle 被重复打入安装包;同时排除 sourcemap 并使用最高压缩级别。 ### 离线缓存 打包命令已自动使用仓库内缓存: ```text cache/electron-v13.1.7--.zip cache/electron-builder/ ``` `cache/electron-builder/nsis` 用于创建 Windows NSIS 安装程序,`winCodeSign` 用于写入 Windows 可执行文件资源,`wine` 仅用于 macOS 上交叉构建 Windows 包。这些都是构建缓存,不会进入最终用户安装包。缺少某个目标平台的 Electron 压缩包时,首次构建会下载并写入 `cache/`。 ## MCP 实时桥接 本项目的 MCP Server 连接运行中的 PDManer Electron 会话,不直接读写 `.pdma.json` 项目文件。启动 PDManer 后,在 Codex 注册: ```bash codex mcp add pdmaner -- node /absolute/path/to/pdmaner/mcp-server/index.js ``` 先调用 `pdmaner_get_session` 检查连接状态。未打开项目时,先用 `pdmaner_list_projects` 列出项目,由用户明确选择后再使用 `pdmaner_open_project`。 MCP 支持项目、表、字段、索引的查询、创建与更新,支持聚焦表、预览 DDL/代码、导出表结构与 DDL、生成模板代码和保存项目;不提供删除能力。写操作需要使用最近一次读取结果的 `revision` 作为 `expectedRevision`。完整工具说明见 [mcp-server/README.md](mcp-server/README.md)。 ## 云端协作 2.0.0 分支包含独立的云协作服务,Electron、浏览器工作台和 MCP 共用组织、权限、项目版本、审计和表级编辑锁。默认使用本地 JSON 存储启动: ```bash npm run cloud:start ``` 浏览器访问 `http://127.0.0.1:3001` 可注册账号、创建协作空间和云项目。生产环境可使用 PostgreSQL 与 Docker Compose: ```bash # 项目根目录执行,读取根目录 .env,并构建/启动云端服务和 PostgreSQL npm run cloud:docker:up # 查看状态、日志或停止服务 npm run cloud:docker:status npm run cloud:docker:logs npm run cloud:docker:down ``` 完整的部署变量、安全边界、实时协作行为、HTTP API 和云端 MCP 工作流见 [docs/cloud-collaboration.md](docs/cloud-collaboration.md)。 ## Codex Skill:使用 PDManer 设计表 可分发 Skill 位于 [docs/pdmaner-table-design](docs/pdmaner-table-design/SKILL.md),包含实时 MCP 操作流程及 digit 产品线表设计规范。它强制要求:当 PDManer 未打开项目时,先列出项目并等待用户明确选择,不能自行推断或打开项目。 安装到 Codex: ```bash mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills" cp -R docs/pdmaner-table-design "${CODEX_HOME:-$HOME/.codex}/skills/" ``` 安装后可在 Codex 中使用: ```text 使用 $pdmaner-table-design 创建并导出订单表 ``` ## 相关目录 - `src/`:Electron 主进程、前端应用和 MCP Bridge 实现。 - `public/`:静态资源、模板文件和 Java 代码生成引擎。 - `app/`:Electron 打包应用清单与构建输出目录。 - `mcp-server/`:供 Codex 注册的 stdio MCP Server。 - `docs/`:项目文档及可分发的 Codex Skill。 - `cache/`:Electron 与 Electron Builder 的本地打包缓存。 ## 许可与来源 PDManer 延续自 [PDMan](https://gitee.com/robergroup/pdman) 与 CHINER 的建模能力。Java 代码生成相关实现可参考 [chiner-java](https://gitee.com/robergroup/chiner-java)。