- 通用 DTO:Money(最小货币单位整数)、CursorPage 泛型、9 个平台 ID Annotated 类型(前缀+UUIDv7/v4 正则,与 openapi 契约对齐) - db 基础:naming_convention Base(pk_/uq_/ix_/fk_,AGENTS 8.6)+ async engine + 事务作用域 session - 首批 6 张表 typed mapping:user/personal_domain/session/service_account/audit_event/outbox_event;Session ID 为 CSPRNG opaque;审计与 Outbox 不可变 - Alembic async 迁移(含表注释);docker 起 hunjing-postgres 并 upgrade 验证:7 表、约束/索引命名全部符合约定 - 按 database-design skill 清单交叉检查:外键索引全覆盖(复合唯一最左前缀)、审计聚合时间线与 Outbox 投递扫描均为专用复合索引 - 集成测试 8 项(唯一约束、FK restrict/cascade、检查约束、同事务提交)连 PG 测试库运行;pytest 15 项、ruff、mypy strict 全绿
23 lines
605 B
YAML
23 lines
605 B
YAML
services:
|
||
hunjing-postgres:
|
||
# 基础档使用本地 postgres:16;WP-04 启用向量检索时切换 pgvector/pgvector:17
|
||
image: postgres:16-alpine
|
||
container_name: hunjing-postgres
|
||
restart: unless-stopped
|
||
environment:
|
||
POSTGRES_USER: hunjing
|
||
POSTGRES_PASSWORD: hunjing_dev_password
|
||
POSTGRES_DB: hunjing
|
||
ports:
|
||
- "127.0.0.1:5432:5432"
|
||
volumes:
|
||
- hunjing-pgdata:/var/lib/postgresql/data
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U hunjing -d hunjing"]
|
||
interval: 5s
|
||
timeout: 3s
|
||
retries: 12
|
||
|
||
volumes:
|
||
hunjing-pgdata:
|