Files
openclaw-config/workspace-sql/skills/table-alias/EXAMPLES.md
T

5.6 KiB
Raw Blame History

使用示例

自然语言触发

示例 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


命令行直接执行

基本用法

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

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

添加新的目标数据库

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

-- ============================================================
-- 表结构同步脚本: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

# 表结构同步脚本 - 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. 验证密码是否正确

相关文档