Browse Source

feat: 新增数据库同步技能 (db-sync-prod-to-dev)

从正式环境 PostgreSQL 数据库同步数据到本地开发环境的自动化工具
- 支持询问正式环境内网 IP(每次执行时询问,因为 IP 会变化)
- 自动使用 pg_dump 管道同步数据
- 同步后自动更新测试账号密码为 123123
- 验证并报告同步结果

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 4 weeks ago
parent
commit
6b54dc8a2d

BIN
.claude/skills/db-sync-prod-to-dev.skill


+ 61 - 0
.claude/skills/db-sync-prod-to-dev/SKILL.md

@@ -0,0 +1,61 @@
+---
+name: db-sync-prod-to-dev
+description: 从正式环境 PostgreSQL 数据库同步数据到本地开发环境的自动化工具。用于开发测试时将正式数据同步到本地。触发词:"同步正式库"、"sync production database"、"同步数据库"、"db sync"、"从正式库同步"、"同步prod数据"。每次执行时需要询问用户正式环境的内网IP地址(因为IP会变化)。
+---
+
+# 数据库同步 (Prod → Dev)
+
+将正式环境数据库同步到本地开发环境,并自动设置测试账号密码。
+
+## 执行流程
+
+### 1. 获取正式环境 IP
+
+使用 AskUserQuestion 询问用户正式环境的内网 IP:
+
+```
+请输入正式环境的内网 IP 地址:
+```
+
+### 2. 执行数据库同步
+
+使用 pg_dump 通过管道直接同步:
+
+```bash
+pg_dump -h <IP> -p 5432 -U postgres --clean --if-exists postgres | \
+  psql -h 127.0.0.1 -p 5432 -U postgres -d postgres
+```
+
+### 3. 更新测试账号密码
+
+同步完成后,将 users2 表中的测试账号密码改为明文 `123123`:
+
+```sql
+-- 企业小程序和人才小程序用户密码改为 123123
+-- 管理员(id=1)保持不变
+UPDATE users2 SET password = '123123' WHERE id != 1;
+```
+
+### 4. 验证结果
+
+显示关键表的记录数确认同步成功:
+
+```sql
+SELECT 'areas' as tbl, COUNT(*) as cnt FROM areas
+UNION ALL SELECT 'disabled_person', COUNT(*) FROM disabled_person
+UNION ALL SELECT 'users2', COUNT(*) FROM users2
+UNION ALL SELECT 'files', COUNT(*) FROM files
+ORDER BY tbl;
+```
+
+## 测试账号
+
+同步后可使用以下账号测试:
+- 企业小程序: 13800013800 / 123123
+- 人才小程序: 13800138004 / 123123
+
+## 注意事项
+
+- 正式环境 IP 会变化,每次执行必须询问
+- 密码修改仅影响本地开发环境,不影响正式环境
+- 本地数据库地址:127.0.0.1:5432