在准备环境前提交次全部更改。

This commit is contained in:
Neo
2026-02-19 08:35:13 +08:00
parent ded6dfb9d8
commit 4eac07da47
1387 changed files with 6107191 additions and 33002 deletions

View File

@@ -0,0 +1,161 @@
- [P20260215-223951] 2026-02-15 22:39:51 +0800
- summary: CONTEXT TRANSFER: We are continuing a conversation that had gotten too long. Here is a summary: --- ## TASK 1: 审查 db 目录并…
- prompt:
```text
CONTEXT TRANSFER: We are continuing a conversation that had gotten too long. Here is a summary:
---
## TASK 1: 审查 db 目录并创建/完善数据库和结构
**STATUS**: done
**USER QUERIES**: 1-2 (from previous conversation)
**DETAILS**: 创建了 `etl_feiqiu` 和 `zqyy_app` 数据库,六层 schema DDL 全部执行成功,全项目 schema 引用迁移完成450+ 处替换)。
**FILEPATHS**: `scripts/migrate/fix_schema_refs.py`, `scripts/migrate/batch_schema_rename.py`
---
## TASK 2: 从旧库迁移数据到新库
**STATUS**: done
**USER QUERIES**: 3-4 (from previous conversation)
**DETAILS**:
- 旧库 `LLZQ-test` → 新库 `etl_feiqiu` 数据迁移全部完成
- 73 张有数据表行数全部精确匹配ODS 23、DWD 40、DWS 8、meta 3
- 8 个物化视图(`mv_dws_*`)已重建并填充数据
- 索引ods 69、dwd 135、dws 123含 8 个物化视图索引、meta 5
- ANALYZE 已对所有 6 个 schema 执行完毕
- `zqyy_app` 正式库只有 `admin_users` 1 行数据
**FILEPATHS**: `scripts/migrate/migrate_data.py`, `scripts/migrate/migrate_finalize.py`, `scripts/migrate/migrate_fix_remaining.py`
---
## TASK 3: 创建测试库并更新项目配置
**STATUS**: in-progress
**USER QUERIES**: 用户要求"完全复制/镜像现有的库,做一个测试库用于测试和开发,并且配置文件和项目中也使用测试库"
**DETAILS**:
### 已完成:
- 通过 dblink 创建了 `test_etl_feiqiu` 和 `test_zqyy_app` 数据库
- `scripts/ops/clone_to_test_db.py` 脚本执行成功,两个测试库均验证通过(`test_etl_feiqiu: OK`, `test_zqyy_app: OK`
- `scripts/ops/fix_test_db.py` 补丁脚本执行成功:
- meta 3 表数据全部一致etl_cursor: 44, etl_run: 8726, etl_task: 49
- 8 个物化视图全部创建成功
- 8 个物化视图索引全部 OK
- ANALYZE 完成110 个对象)
- 最终验证:全部通过
- 已更新的配置文件:
- `.env` — 添加了 `PG_NAME=test_etl_feiqiu`, `APP_DB_NAME=test_zqyy_app`, `ETL_DB_NAME=test_etl_feiqiu`
- `apps/backend/.env.local` — `APP_DB_NAME=test_zqyy_app`, `ETL_DB_NAME=test_etl_feiqiu`
- `.env.template` — 默认值更新为测试库名
- `apps/backend/app/config.py` — 硬编码默认值改为 `test_zqyy_app` / `test_etl_feiqiu`
### 未完成:
- ETL 的 `.env` 文件(`apps/etl/pipelines/feiqiu/.env`)中的 `PG_DSN` 仍指向正式库 `etl_feiqiu`,需要改为 `test_etl_feiqiu`
- `scripts/ops/clone_to_test_db.py` 中的 `init_test_etl_feiqiu()` 和 `init_test_zqyy_app()` 函数使用相对路径 `BASE_DIR` 查找 DDL 文件,当 cwd 不在项目根目录时会找不到文件(已在输出中看到 `[SKIP] 不存在` 错误),但数据迁移部分不受影响因为是直接从源库 COPY
- `scripts/ops/clone_to_test_db.py` 中 `migrate_matviews` 函数已修复分号问题(`defn.rstrip().rstrip(";").rstrip()`
- FDW 配置(`db/fdw/setup_fdw.sql`)中 `dbname` 仍为 `etl_feiqiu`,测试环境可能需要对应的测试 FDW 配置
- MCP postgres 工具当前连接的是旧库 `LLZQ-test`,可能需要更新指向测试库
- `getDiagnostics` 未对修改的配置文件运行
**NEXT STEPS**:
1. 更新 `apps/etl/pipelines/feiqiu/.env` 中的 `PG_DSN``etl_feiqiu` → `test_etl_feiqiu`
2. 检查是否还有其他文件引用正式库名需要更新(如 `db/fdw/setup_fdw.sql` 的测试版本)
3. 对修改的代码文件运行 `getDiagnostics` 验证
4. 考虑是否需要更新 MCP postgres 配置指向测试库
**FILEPATHS**: `scripts/ops/clone_to_test_db.py`, `scripts/ops/fix_test_db.py`, `.env`, `apps/backend/.env.local`, `.env.template`, `apps/backend/app/config.py`, `apps/etl/pipelines/feiqiu/.env`
---
## TASK 4: 审计(/audit
**STATUS**: not-started
**DETAILS**: governance 规则要求对高风险变更运行 `/audit`。本次变更涉及 DB schema 变更、`config/` 目录文件修改、根目录 `.env` 修改,属于高风险。用户需手动触发。
---
## USER CORRECTIONS AND INSTRUCTIONS:
- 所有说明性文字使用简体中文
- 系统没有 `psql` 命令行工具,但有 `psycopg2` Python 包
- shell cwd 可能不在项目根目录(常在 `C:\NeoZQYY\apps\backend`),执行 Python 脚本需用绝对路径 `C:\NeoZQYY\...`
- Windows 控制台需要 `$env:PYTHONIOENCODING="utf-8"` 处理中文输出
- MCP postgres 工具当前连接的是旧库 `LLZQ-test`,新库操作通过 dblink 或 psycopg2 脚本
- `local-Python` 用户是超级用户
- 数据库连接信息Host: `100.64.0.4`, Port: `5432`, User: `local-Python`, Password: `Neo-local-1991125`
- 用户整理了 scripts 目录结构:`scripts/migrate/`(迁移脚本)、`scripts/ops/`(运维脚本)
- 正式库:`etl_feiqiu`ETL 数据)、`zqyy_app`(业务应用)
- 测试库:`test_etl_feiqiu`、`test_zqyy_app`
- 旧库:`LLZQ-test`(已弃用)
- 应用角色:`app_reader`(密码:`AppR3ad_2026!`)、`app_user`(密码:`AppUs3r_2026!`
## Files to read
- `apps/etl/pipelines/feiqiu/.env`
- `.env`
- `apps/backend/.env.local`
- `apps/backend/app/config.py`
- `scripts/ops/clone_to_test_db.py`
USER QUERIES(most recent first):
1. 继续
2. Output:
Command executed successfully with no output.
Exit Code: 0
3. Output:
Command executed successfully with no output.
Exit Code: 0
4. 继续
5. Output:
Command executed successfully with no output.
Exit Code: 0
6. Output:
Command executed successfully with no output.
Exit Code: 0
7. 我刚刚整理了路径,按照新的文件路径执行。
8. Output:
Command executed successfully with no output.
Exit Code: 0
9. Output:
Command executed successfully with no output.
Exit Code: 0
10. 呃...还有个问题,我在文档中明确指出了数据库的测试库需求,但现在使用的是正式库。为我完全复制/镜像现有的库,做一个测试库用于测试和开发,并且配置文件和项目中也使用测试库。
11. Output:
Hook execution failed with exit code 1.
Error output:
[AUDIT REMINDER] Pending audit detected (root-file, dir:backend, dir:etl, dir:db, db-schema-change). Run /audit (Manual: Run /audit hook) to sync docs & write audit artifacts. (rate limit: 15min)
Exit Code: 1
12. Output:
Command executed successfully with no output.
Exit Code: 0
13. Output:
Command executed successfully with no output.
Exit Code: 0
---
METADATA:
The previous conversation had 8 messages.
INSTRUCTIONS:
Continue working until the user query has been fully addressed. Do not ask for clarification - proceed with the work based on the context provided.
IMPORTANT: you need to read from the files to Read section