This commit is contained in:
toom1996
2026-09-21 19:19:03 +08:00
parent dffcf9f9e5
commit 299fd974df
11 changed files with 3392 additions and 575 deletions

View File

@ -145,13 +145,18 @@ go build -o bin/dbtool ./cmd/dbtool
### 数据库
表结构随服务启动由 GORM AutoMigrate 幂等创建(含 pgvector 扩展、去重索引与语义 embedding 表)。跨环境搬运全库数据用 dbtool:
表结构**不由服务启动自动创建**:全库「结构 + 索引 + 约束 + 数据」统一由 dbtool 导出的**单个纯 SQL 文件**维护(不依赖 pg_dump)。
```bash
go run ./cmd/dbtool dump -out db_dump.json # 导出当前库
go run ./cmd/dbtool import -in db_dump.json # 在目标环境重建并回灌
# 导出(源机器)
go run ./cmd/dbtool dump -out db/backups/db_dump.sql
# 导入(目标机器;库须为空,且已启用 pgvector 扩展)
psql -U fashion -d fashion -v ON_ERROR_STOP=1 -f db/backups/db_dump.sql
```
目标库若尚未启用 pgvector,导出时加 `-with-extension`,让文件自带 `CREATE EXTENSION IF NOT EXISTS vector`。
### 优雅关闭
监听 `SIGINT` / `SIGTERM`,等待在途请求完成(最长 `shutdown_timeout` 秒)后退出,并通知入库 worker 停止领取新任务。
@ -165,12 +170,12 @@ backend/
├── configs/config.yml # 唯一配置源
├── cmd/
│ ├── server/ # 组合根:三端口 HTTP + 入库 worker
│ ├── dbtool/ # 跨环境数据搬运
│ ├── dbtool/ # 全库导出为纯 SQL(结构 + 索引 + 数据)
│ └── dbdiag/ # 数据库诊断
├── internal/
│ ├── config/ # 配置加载
│ ├── model/ # 实体(brand / runway / street_snap / user / 草稿 / ingest)
│ ├── database/ # 连接池 + AutoMigrate + 去重 schema
│ ├── database/ # 连接池(结构由 dbtool 导出的 SQL 维护,不做 DDL)
│ ├── repository/ # 数据访问接口 + GORM 实现
│ ├── service/ # 业务逻辑
│ ├── dto/ # 请求 / 响应结构体