3.1 KiB
3.1 KiB
name, description, status, version, date
| name | description | status | version | date |
|---|---|---|---|---|
| table-alias | 将准生产数据库表结构同步到 VPS 开发库,智能对比差异并执行 ALTER/CREATE | proposal | v1 | 2026-08-14T06:24:41.780Z |
table-alias - 表结构对齐技能
功能描述
将准生产数据库的表结构同步到VPS 开发库,确保开发环境与准生产环境表结构一致。
同步方向: 准生产(只读)→ VPS(root 可写)
触发方式
自然语言命令:
同步准生产 dmp_serp 的表结构到 VPS
同步准生产 dmp_smdm 的表结构到 VPS
执行流程
- 解析命令提取源库名和目标库名
- 从配置文件读取连接信息
- 验证源库(只读)和目标库(root)连接
- 获取源数据库所有表列表
- 对每个表:
- 对比源和目标的表结构差异
- 表不存在 →
CREATE TABLE - 表存在 → 智能对比字段,生成
ALTER TABLE - 执行脚本(失败继续)
- 生成 SQL 脚本文件和 README
- 记录执行日志到
memory/{date}.md
智能对比
对比维度:
- 表是否存在 →
SHOW TABLES - 字段列表 →
information_schema.COLUMNS - 字段类型、NULL 约束、默认值、注释
- 索引 →
information_schema.STATISTICS
错误处理: 遇到错误时,记录日志并继续处理下一个表
配置文件
位置: ~/.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
targets:
- name: VPS
host: 101.34.227.188
port: 3306
user: root
password_env: MYSQL_PWD_SQL
readonly: false
blacklist:
- ruoyi-vue-pro
- mysql
- sys
- performance_schema
output:
base_dir: /home/yangxuan/codes/xuan-sql/scripts
date_subdir: true
write_memory: true
输出产物
- SQL 脚本文件 -
scripts/{日期}/{库}__{表}__struct.sql - README.md - 执行摘要和表清单
- 记忆文件 -
memory/{日期}.md
安全限制
- 源数据库固定为准生产(只读)
- 目标数据库固定为 VPS(root)
- 黑名单数据库禁止同步:
ruoyi-vue-pro,mysql,sys - 表数量 > 50 时需用户确认
- 遇到错误继续执行,不影响其他表
使用示例
自然语言:
同步准生产 dmp_serp 的表结构到 VPS
命令行:
cd skills/table-alias
./sync_tables.sh dmp_serp
文件结构
skills/table-alias/
├── SKILL.md # 技能说明
├── sync_tables.sh # 执行脚本
├── EXAMPLES.md # 使用示例
└── README.md # 快速开始
版本
1.0.0 (2026-08-14) - 初始版本
测试情况
已手动测试通过:
- ✅ 准生产 → VPS 连接
- ✅ 同步
dmp_serp库 5 张表 - ✅ 生成脚本并执行
- ✅ 记录到记忆文件
待审批事项:
- 技能名称
table-alias是否合适? - 同步策略(智能对比 + 直接执行)是否满足需求?
- 安全限制(黑名单、阈值)是否合理?