- 修复 ts-node seed 命令(compiler-options -> compilerOptions) - 添加本地工程测试环境文档 - 添加 M-MEMBER-01 Migration 验证证据
94 lines
1.9 KiB
Markdown
94 lines
1.9 KiB
Markdown
# 本地工程测试环境
|
||
|
||
> M-MEMBER-01-CLOSE-05A 固化测试环境
|
||
> 生成时间:2026-06-27
|
||
> 禁止写入真实密码和密钥
|
||
|
||
---
|
||
|
||
## 环境基线
|
||
|
||
```text
|
||
操作系统: macOS 26.5.1 (Darwin)
|
||
Node.js: v26.0.0
|
||
npm: 11.12.1
|
||
MySQL: mysql:8.0 (Docker, 8.0.46)
|
||
Redis: redis:7-alpine (Docker, 7.4.9)
|
||
Prisma: 5.22.0
|
||
API HEAD: 87317e0
|
||
数据库名称:zhixi_prod
|
||
Redis DB: 16 个数据库可用
|
||
API 地址: http://127.0.0.1:3000
|
||
Admin 地址:http://127.0.0.1:5174
|
||
iOS API: http://127.0.0.1:3000/api (Debug)
|
||
```
|
||
|
||
## 启动方式
|
||
|
||
### 基础设施(Docker)
|
||
|
||
```bash
|
||
cd api-server
|
||
docker compose -f docker-compose.local.yml up -d
|
||
|
||
# 验证
|
||
docker ps --format 'table {{.Names}}\t{{.Status}}'
|
||
```
|
||
|
||
| 服务 | 容器名 | 端口 |
|
||
|------|--------|------|
|
||
| MySQL | zhixi-mysql | 127.0.0.1:3306 |
|
||
| Redis | zhixi-redis | 127.0.0.1:6379 |
|
||
| Qdrant | zhixi-qdrant | 127.0.0.1:6333 |
|
||
|
||
### 应用进程
|
||
|
||
```bash
|
||
# API Server
|
||
cd api-server
|
||
npm run build
|
||
node dist/src/main.js
|
||
|
||
# Worker (BullMQ)
|
||
node dist/src/worker.main.js
|
||
|
||
# RAG Worker
|
||
cd rag-worker
|
||
python3 -u main.py
|
||
|
||
# Admin 前端
|
||
cd admin-projects
|
||
npm run dev
|
||
```
|
||
|
||
### 环境变量
|
||
|
||
复制 `api-server/.env.local` 为 `.env`。包含本地 Docker 连接串和 AI=mock 模式。
|
||
|
||
### 生产数据同步
|
||
|
||
```bash
|
||
# SSH 到生产服务器 dump → 本地 import
|
||
ssh -i devops-projects/PJPZ/zhixi.pem ubuntu@120.53.227.155 \
|
||
"docker exec mysql mysqldump -uroot -p... --single-transaction zhixi_prod | gzip" \
|
||
| gunzip | docker exec -i zhixi-mysql mysql -uroot -p... zhixi_prod
|
||
```
|
||
|
||
## 测试命令
|
||
|
||
```bash
|
||
cd api-server
|
||
npm run test:unit # 单元测试(全 mock)
|
||
npm run test:e2e # E2E 测试(全 mock)
|
||
npm run test:integration # 集成测试(需要 MySQL + Redis)
|
||
```
|
||
|
||
## Docker 镜像拉取
|
||
|
||
国内网络使用 DaoCloud 镜像:
|
||
|
||
```bash
|
||
docker pull docker.m.daocloud.io/library/mysql:8.0
|
||
docker tag docker.m.daocloud.io/library/mysql:8.0 mysql:8.0
|
||
```
|