数据库迁移·SKILL:告别手动执行SQL的自动化利器
上周和我一哥们儿聊天,他吐槽了一件事:
"我们项目有 8 个模块,每次发版都要手动执行一堆 SQL 脚本。漏了一个,线上就炸;执行顺序错了,数据就乱。每次发布都像在拆炸弹..."
你是不是也有类似的经历?
多个模块的 SQL 脚本散落各处,执行时总是漏掉几个 本地、测试、生产环境切换,配置改来改去容易出错 迁移失败后不知道怎么回滚,只能手动删表重建 团队协作时,两个人的 SQL 版本号冲突,互相覆盖
如果你被这些问题困扰过,今天这个 SKILL 就是为你准备的。
它能帮你做什么?
简单说就是:你告诉我要迁移哪个模块,我帮你搞定一切。
使用前 vs 使用后
以前的你:
# 手动执行每个模块的SQL
mysql -u root -p fengqun_platform < sql/platform/001.sql
mysql -u root -p fengqun_erp < sql/erp/001.sql
mysql -u root -p fengqun_wms < sql/wms/001.sql
# ...还有 5 个模块
# 哪个执行了?哪个没执行?去数据库里查表吧
现在的你:
# 一句话,全部搞定
执行数据库迁移
# 想看状态?
查看迁移状态
# 执行错了?
回滚最后一个迁移
就这么简单,像跟同事说话一样自然。
为什么你需要这个 SKILL?
1. 再也不会漏执行 SQL
它会自动扫描你项目里所有的模块,一个都不会漏。你只需要说"执行迁移",剩下的交给它。
2. 一键回滚,不怕出错
执行错了?说一句"回滚",自动恢复到上一个版本。再也不用手动删表重建。
3. 多环境一键切换
本地开发用 local,测试用 test,切换环境只需一句话,配置自动跟随。
4. 团队协作不冲突
每个人的迁移文件都有唯一的时间戳,再也不会出现"我覆盖了你的 SQL"这种惨剧。
5. 新人 10 分钟上手
不用教复杂的命令,不用写操作手册。新人只需要知道:想迁移数据库,告诉 AI 就行。
真实场景:谁最需要它?
✅ 微服务/多模块项目团队
每次发版要执行十几个模块的 SQL?用它,一句话搞定 再也不用担心漏执行、顺序错、版本冲突
✅ 经常被发布折磨的开发者
发布前紧张兮兮地检查 SQL 执行清单?现在可以放心了 执行错了能一键回滚,不再手忙脚乱
✅ 带新人的技术 Leader
新人第一次发布就搞砸数据库?不存在的 不用写操作手册,AI 会指导他每一步
✅ 追求效率的全栈工程师
一个人负责多个项目,每次发布都要重复同样的操作? 交给 AI,你去喝杯咖啡
使用示例:就这么简单
在 AI 工具里,你只需要说:
执行数据库迁移
或者:
dbmate
或者:
查看迁移状态
AI 会自动完成所有工作:
✅ 检查环境是否就绪 ✅ 发现所有需要迁移的模块 ✅ 按正确顺序执行迁移 ✅ 告诉你执行结果
你不需要记住任何命令,不需要看文档,不需要写脚本。
与 Flyway/Liquibase 对比,它强在哪?
你可能用过 Flyway 或 Liquibase,那为什么要用这个 SKILL?
传统工具 vs AI SKILL
| 学习成本 | ||
| 使用方式 | ||
| 环境切换 | ||
| 错误处理 | ||
| 新人上手 | ||
| CI/CD集成 | ||
| 团队协作 |
核心差异
传统工具是"你操作工具":
你需要记住命令 你需要看文档 你需要处理错误 你需要写脚本集成到 CI/CD
这个 SKILL 是"工具服务你":
你用自然语言下指令 AI 自动处理所有细节 出错了 AI 告诉你怎么解决 CI/CD 里直接调用,不用写脚本
简单说:Flyway 是专业工具,这个 SKILL 是让工具变简单的智能层。
CI/CD 集成:让发布流程自动化
这个 SKILL 最强大的地方,是可以无缝集成到你的 CI/CD 流程中。
典型场景:代码合并后自动升级数据库
开发者提交代码 → PR合并 → CI构建 → CD部署 → 自动执行数据库迁移
以前你需要:
# .gitlab-ci.yml
stages:
-deploy
-migrate
deploy:
stage:deploy
script:
-./deploy.sh
migrate:
stage:migrate
script:
-flywaymigrate-url=$DB_URL-user=$DB_USER
# 还要处理各种参数和错误...
现在你只需要:
# .gitlab-ci.yml
stages:
-deploy
-migrate
deploy:
stage:deploy
script:
-./deploy.sh
migrate:
stage:migrate
script:
# 通过 qodercli 调用 SKILL,一句话搞定
-qodercli-p"/agent-dbmate 执行数据库迁移 --config=test"
实际工作流
场景 1:开发环境自动迁移
# 开发者合并代码后,CI 自动执行
qodercli -p "/agent-dbmate 升级DB"
# AI 自动完成:
# ✅ 检查环境
# ✅ 发现待迁移的模块
# ✅ 按顺序执行
# ✅ 输出结果
场景 2:测试环境一键升级
# 测试前,一键升级数据库到最新版本
qodercli -p "执行数据库迁移 --config=test"
# 如果需要回滚
qodercli -p "回滚最后一个迁移 --config=test"
场景 3:生产环境可控发布
# 先看状态
qodercli -p "查看迁移状态 --config=prod"
# 确认无误后执行
qodercli -p "执行数据库迁移 --config=prod"
# 有问题立即回滚
qodercli -p "回滚最后一个迁移 --config=prod"
为什么这样更好?
这让 CI/CD 从"运维专属"变成"人人都能用"。
常见问题
Q: 我需要懂数据库知识才能用吗?
A: 不需要。你只需要知道"我要迁移数据库",剩下的 AI 会处理。
Q: 执行错了怎么办?
A: 说"回滚"就行,自动恢复到上一个版本。
Q: 多模块项目支持吗?
A: 完美支持。自动发现所有模块,一个都不会漏。
Q: 能在不同环境使用吗?
A: 可以。local/test/prod 一键切换,配置自动跟随。
Q: 团队协作会冲突吗?
A: 不会。每个人的迁移文件都有唯一时间戳,互不干扰。
写在最后
这个 SKILL 的价值不在于"有多强大",而在于"能让你少操多少心"。
每次发布不再需要:
❌ 对着清单一个个检查 SQL 是否执行 ❌ 紧张兮兮地担心漏掉某个模块 ❌ 执行错了手忙脚乱地回滚 ❌ 给新人写厚厚的操作手册
现在只需要:
✅ 说一句"执行迁移" ✅ 喝杯咖啡 ✅ 回来看到"迁移完成"
数据库变更不应该是一场赌注,而应该是一次可追溯的演进。
如果你也想从繁琐的数据库管理中解放出来,这个 SKILL 就是你的最佳选择。
获取方式
原创不易,如果这个 SKILL 能解放你的生产力,欢迎购买我的 SKILL 合集,你的支持是鹿Sir坚持的最大动力~
网盘链接:
https://pan.baidu.com/s/1HVwxzBq5dGD8PHoPivDupg
提取码(即将失效):