You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.6 KiB
1.6 KiB
测试与部署方案
本轮开发验证不依赖 Docker,不依赖真实 MySQL。 真实 MySQL 和 Docker Compose 属于集成验证阶段。
本地轻量验证
cd /root/Projects/iTi/iTi-Flask
uv run pytest -q
cd /root/Projects/iTi/iTi-System
uv run pytest -q
cd /root/Projects/iTi/hsyh-erp
uv run pytest -q
这些测试允许使用 SQLite 内存库,只验证框架行为、路由契约和模块组装。
MySQL 集成验证
准备独立测试库:
CREATE DATABASE iti_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE hsyh_erp_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
执行:
export DATABASE_URL='mysql+pymysql://root:password@127.0.0.1:3306/iti_test?charset=utf8mb4'
uv run alembic upgrade head
uv run iti-system migrations sync --target migrations/versions
uv run iti-system seed system app:app
uv run uvicorn app:app --reload
验证:
curl http://127.0.0.1:8000/health
curl http://127.0.0.1:8000/ready
如启用 ready_check_db=True,/ready 会执行 SELECT 1。
Docker Compose 健康检查
服务容器可使用:
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"]
interval: 10s
timeout: 3s
retries: 3
依赖数据库就绪的服务可检查 /ready。
生产运行
简单部署:
uv run uvicorn app:app --host 0.0.0.0 --port 8000
多 worker:
uv run gunicorn app:app -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000
tasks_enabled=True 时不要在多个 worker 同时启用调度。
轻量任务只保证单进程内正常运行。