新建 erp-health 原生 Rust crate,覆盖设计规格中定义的 5 大业务域: - 16 个 SeaORM Entity(患者/家属/标签/医生/健康档案/体征/化验单/预约/排班/随访/咨询等) - 16 表数据库迁移(含索引、外键、默认值、可回滚) - 40+ API 路由骨架(患者管理/健康数据/预约排班/随访/咨询/医生管理) - 12 个权限声明(health.patient/health-data/appointment/follow-up/consultation/doctor 各 .list/.manage) - DTO / Service / Handler / Event 四层架构,Service 使用 todo!() 占位 - erp-server 集成:模块注册 + AppState FromRef 桥接 + 路由挂载 同步更新 CLAUDE.md 项目进度、wiki 知识库、设计规格文档。
105 lines
3.2 KiB
Markdown
105 lines
3.2 KiB
Markdown
---
|
||
title: 开发环境
|
||
updated: 2026-04-23
|
||
status: stable
|
||
tags: [infrastructure, dev-environment, windows, postgresql]
|
||
---
|
||
|
||
# 开发环境
|
||
|
||
> 从 [[index]] 导航。关联: [[erp-server]] [[database]] [[frontend]] [[testing]]
|
||
>
|
||
> **本页是连接信息、启动命令、登录凭据的单一真相源。** 其他页面引用此处。
|
||
|
||
## 1. 设计决策
|
||
|
||
- **Windows 原生运行** — PostgreSQL/Redis/Rust/Node 直接在宿主机,不用 Docker
|
||
- **一键启动** — `dev.ps1` 管理前后端生命周期
|
||
- **环境变量优先** — 敏感配置通过 `ERP__` 前缀环境变量覆盖 TOML
|
||
|
||
## 2. 关键文件 + 连接信息
|
||
|
||
### 核心文件
|
||
|
||
| 文件 | 职责 |
|
||
|------|------|
|
||
| `dev.ps1` | 一键启动/停止(自动清理端口 5174-5189) |
|
||
| `crates/erp-server/config/default.toml` | 默认配置模板 |
|
||
| `docker/docker-compose.yml` | 可选 Docker 配置 |
|
||
|
||
### 服务连接
|
||
|
||
| 服务 | 地址 | 用途 |
|
||
|------|------|------|
|
||
| PostgreSQL 18 | `postgres://postgres:123123@localhost:5432/erp` | 主数据库 |
|
||
| Redis 7 | `redis://:redis_KBCYJk@129.204.154.246:6379` (云端) | 缓存 + 限流 |
|
||
| 后端 API | `http://localhost:3000/api/v1` | Axum 服务 |
|
||
| 前端 SPA | `http://localhost:5174` | Vite 开发服务器 |
|
||
|
||
### 登录凭据
|
||
|
||
```
|
||
用户名: admin 密码: Admin@2026
|
||
```
|
||
|
||
psql: `D:\postgreSQL\bin\psql.exe -U postgres -h localhost -d erp`
|
||
|
||
### 必须设置的环境变量
|
||
|
||
| 变量 | 开发值 |
|
||
|------|--------|
|
||
| `ERP__DATABASE__URL` | `postgres://postgres:123123@localhost:5432/erp` |
|
||
| `ERP__JWT__SECRET` | `dev-secret-key-change-in-prod` |
|
||
| `ERP__AUTH__SUPER_ADMIN_PASSWORD` | `Admin@2026` |
|
||
| `ERP__REDIS__URL` | `redis://:redis_KBCYJk@129.204.154.246:6379` |
|
||
|
||
> 所有四个在 `default.toml` 中为 `__MUST_SET_VIA_ENV__` 占位符
|
||
|
||
### 集成契约
|
||
|
||
| 方向 | 模块 | 触发时机 |
|
||
|------|------|---------|
|
||
| 提供 → | [[erp-server]] | 数据库/Redis 连接 |
|
||
| 提供 → | [[frontend]] | Vite 代理目标 |
|
||
| 提供 → | [[testing]] | 测试环境配置 |
|
||
|
||
## 3. 代码逻辑
|
||
|
||
### 一键启动(推荐)
|
||
|
||
```powershell
|
||
.\dev.ps1 # 启动后端 + 前端
|
||
.\dev.ps1 -Status # 查看端口状态
|
||
.\dev.ps1 -Stop # 停止所有服务
|
||
.\dev.ps1 -Restart # 重启所有服务
|
||
```
|
||
|
||
### 手动启动
|
||
|
||
```powershell
|
||
# 后端(必须从 crates/erp-server 目录)
|
||
cd crates/erp-server
|
||
$env:ERP__DATABASE__URL = "postgres://postgres:123123@localhost:5432/erp"
|
||
$env:ERP__JWT__SECRET = "dev-secret-key-change-in-prod"
|
||
$env:ERP__AUTH__SUPER_ADMIN_PASSWORD = "Admin@2026"
|
||
cargo run -p erp-server
|
||
|
||
# 前端
|
||
cd apps/web && pnpm install && pnpm dev
|
||
```
|
||
|
||
⚡ **不变量**: 后端必须从 `crates/erp-server/` 目录启动或通过环境变量覆盖所有配置
|
||
⚡ **不变量**: Vite 固定端口 5174(`--strictPort`),前端代理 `/api` → 后端 3000
|
||
|
||
## 4. 活跃问题 + 陷阱
|
||
|
||
⚠️ Redis 不可达时限流自动降级为 fail-open(放行所有请求)
|
||
⚠️ Docker Compose 配置保留在 `docker/` 下但日常开发不依赖
|
||
⚠️ 首次 `cargo run` 编译整个 workspace 较慢(含 wasmtime),后续增量快
|
||
|
||
## 5. 变更记录
|
||
|
||
| 日期 | 变更 |
|
||
|------|------|
|
||
| 2026-04-23 | 重构为 5 节结构,确立为连接信息的单一真相源 |
|