feat: 改造为开箱即用模板 — MySQL/MongoDB(Beanie) 一键切换 + AGENTS.md 开发规范

- src/ 按域组织骨架,示例域 items 双后端实现(SQLAlchemy2.0 async / Beanie 2.x)
- DB_BACKEND 环境变量切换,router 只依赖 Repo Protocol
- alembic 迁移(含初始 items 迁移)、uv 依赖管理、ruff、pytest 异步测试
- Dockerfile + docker-compose(app/mysql/mongo)
- AGENTS.md 重写为本模板开发规范;原最佳实践文档归档 docs/
- 验证:mongodb/mysql 双后端 pytest 全绿 + uvicorn 真实冒烟通过
This commit is contained in:
2026-08-21 21:23:26 +08:00
parent 5e00aa6095
commit 981bee5a46
34 changed files with 3579 additions and 1256 deletions

34
docker-compose.yml Normal file
View File

@@ -0,0 +1,34 @@
services:
app:
build: .
ports:
- "8000:8000"
env_file: .env
environment:
# compose 内网地址覆盖 .env 里的 127.0.0.1
MYSQL_DSN: mysql+aiomysql://root:root@mysql:3306/app?charset=utf8mb4
MONGO_DSN: mongodb://mongo:27017
depends_on:
- mysql
- mongo
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: app
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
mongo:
image: mongo:8.0
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
volumes:
mysql_data:
mongo_data: