auto: sync OpenClaw config 2026-08-14 17:17

This commit is contained in:
2026-08-14 17:17:05 +08:00
parent d6da0db3d4
commit 7c4fe5a371
28 changed files with 2774 additions and 5 deletions
@@ -0,0 +1,274 @@
# 使用示例
## 自然语言触发
### 示例 1:同步 dmp_serp
**用户:**
```
同步准生产 dmp_serp 的表结构到 VPS
```
**技能响应:**
```
开始执行表结构对齐...
源数据库:准生产 (100.115.195.188:50036) dmp_serp
目标数据库:VPS (101.34.227.188:3306) dmp_serp
[1/5] 验证数据库连接...
✓ 源数据库连接成功
✓ 目标数据库连接成功
[2/5] 获取源数据库表列表...
找到 45 张表
[3/5] 对比并生成脚本...
处理表:dmp_om_productinfo
→ 目标表已存在,对比结构差异...
→ 发现结构差异,生成 ALTER 语句
✓ ALTER TABLE 成功
处理表:dmp_om_productinfo_cost
→ 目标表不存在,执行 CREATE TABLE
✓ CREATE TABLE 成功
...
[4/5] 生成 README.md...
[5/5] 记录到记忆文件...
============================================================
执行完成!
============================================================
总表数:45
成功:45
失败:0
脚本目录:/home/yangxuan/codes/xuan-sql/scripts/20260814
记忆文件:/home/yangxuan/.openclaw/workspace-sql/memory/2026-08-14.md
============================================================
```
---
### 示例 2:同步 dmp_smdm
**用户:**
```
同步准生产 dmp_smdm 的表结构到 VPS
```
**执行:** 同上,目标库为 `dmp_smdm`
---
## 命令行直接执行
### 基本用法
```bash
cd /home/yangxuan/.openclaw/workspace-sql/skills/table-alias
# 同步 dmp_serp
./sync_tables.sh dmp_serp
# 同步 dmp_smdm
./sync_tables.sh dmp_smdm
# 指定不同的目标库名(少见场景)
./sync_tables.sh dmp_serp dmp_serp_dev
```
---
## 配置文件修改
### 添加新的源数据库
编辑 `~/.openclaw/workspace-sql/.db-sync-config.yaml`
```yaml
sources:
- name: 准生产
host: 100.115.195.188
port: 50036
user: witsoftd
password_env: MYSQL_PWD_WIT
readonly: true
# 添加新的源
- name: 生产备份
host: 47.99.209.185
port: 3306
user: backup_user
password_env: MYSQL_PWD_BACKUP
readonly: true
```
### 添加新的目标数据库
```yaml
targets:
- name: VPS
host: 101.34.227.188
port: 3306
user: root
password_env: MYSQL_PWD_SQL
readonly: false
blacklist:
- ruoyi-vue-pro
# 添加新的目标
- name: 本地测试
host: 127.0.0.1
port: 3306
user: root
password_env: MYSQL_PWD_LOCAL
readonly: false
blacklist:
- mysql
- sys
```
---
## 输出文件示例
### SQL 脚本文件
`20260814/dmp_serp__dmp_om_productinfo__struct.sql`
```sql
-- ============================================================
-- 表结构同步脚本:dmp_om_productinfo
-- 源:准生产 (100.115.195.188:50036)
-- 目标:VPS (101.34.227.188:3306) dmp_serp
-- 生成时间:2026-08-14 14:00:00
-- 操作:ALTER TABLE(结构差异)
-- ============================================================
USE dmp_serp;
-- 结构差异:
-- - 添加字段:cust_product_spec
-- - 添加字段:invoice_status
-- - 删除字段:creator_user_id
ALTER TABLE dmp_om_productinfo ADD COLUMN cust_product_spec varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户产品规格' AFTER invoice_status;
ALTER TABLE dmp_om_productinfo ADD COLUMN invoice_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Y' COMMENT 'Y/N 是否开票' AFTER order_change_flag;
ALTER TABLE dmp_om_productinfo DROP COLUMN creator_user_id;
-- ============================================================
-- 验证
-- ============================================================
-- SHOW CREATE TABLE dmp_om_productinfo\G
```
### README.md
```markdown
# 表结构同步脚本 - 20260814
**源:** 准生产 `100.115.195.188:50036` `dmp_serp`
**目标:** VPS `101.34.227.188:3306` `dmp_serp`
**生成时间:** 2026-08-14 14:00:00
**执行状态:** ✅ 已完成
## 脚本清单
| 序号 | 脚本文件 | 操作类型 | 状态 | 说明 |
|------|---------|---------|------|------|
| 1 | `dmp_serp__dmp_om_productinfo__struct.sql` | ALTER | ✅ | 3 处变更 |
| 2 | `dmp_serp__dmp_om_productinfo_cost__struct.sql` | CREATE | ✅ | 新建表 |
| ... | ... | ... | ... | ... |
## 执行结果
- 总表数:45
- 成功:45
- 失败:0
## 验证命令
```sql
-- 检查表列表
SHOW TABLES LIKE 'dmp_serp%';
-- 检查表结构
SHOW CREATE TABLE dmp_om_productinfo\G
```
```
---
## 常见问题
### Q1: 密码环境变量未设置
**错误:**
```
错误:密码环境变量未设置
请确保已设置:MYSQL_PWD_WIT 和 MYSQL_PWD_SQL
```
**解决:**
```bash
# 在 ~/.bashrc 或 ~/.zshrc 中添加
export MYSQL_PWD_WIT=o2byaCkBvF1Y8S2L
export MYSQL_PWD_SQL=5gynj20J
# 重新加载
source ~/.bashrc # 或 source ~/.zshrc
```
---
### Q2: 表数量超过阈值
**提示:**
```
表数量超过 50 张(当前:80),是否继续?[y/N]
```
**解决:** 输入 `y` 继续,或按 `Ctrl+C` 取消
---
### Q3: ALTER TABLE 失败
**错误:**
```
处理表:dmp_om_productinfo
→ 发现结构差异,生成 ALTER 语句
✗ ALTER TABLE 失败(继续执行下一个表)
```
**原因:** 可能是字段类型冲突、有 NULL 值等
**解决:**
1. 查看生成的 SQL 脚本
2. 手动修复数据(如更新 NULL 值)
3. 重新执行脚本
---
### Q4: 连接超时
**错误:**
```
错误:无法连接到源数据库(准生产)
```
**解决:**
1. 检查 Windows 端口转发是否运行
2. 检查防火墙设置
3. 验证密码是否正确
---
## 相关文档
- [SKILL.md](SKILL.md) - 技能详细说明
- [../.db-sync-config.yaml](../.db-sync-config.yaml) - 配置文件
- [sync_tables.sh](sync_tables.sh) - 执行脚本