Agent Skills
返回列表
💻

sqldef 数据库模式漂移对比

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/diff-live-database-schemas-against-declarative-sql-before-schema-drift-reaches-production-with-sqldef。

技能介绍

要解决什么问题

团队用声明式 SQL 管理 schema,但仓库文件和线上结构会慢慢分叉:生产上有人直接执行了 DDL,有人改了表忘了回写,迁移脚本也可能只跑了一半。

这些差异会带来实际故障:发布时 SQL 语句报错,回滚时发现字段已不存在;AI agent 直接操作数据库时,读到的文档和线上结构不一致,可能在最不希望的地方触发变更。

技能如何工作

这个技能把 sqldef 作为漂移检查的执行层:

  • 以声明式 SQL 为基准:CREATE TABLE 等语句既是 schema 定义,也是期望状态描述。
  • 对比实时数据库:mysqldef、psqldef、sqlite3def、mssqldef 分别对应一种数据库,连接选项与原生客户端一致,可复用现有配置。
  • 生成可审查的执行计划:输出「让线上结构变成期望状态所需的语句」,而不是直接修改数据库。
  • 先评审后执行:计划进入正常 review 流程,确认后再由人工或 agent 执行。

四种数据库共用一套工作流,只有连接参数不同,因此可以用同一套检查脚本覆盖多个引擎。

适用边界

sqldef 围绕声明式 SQL 设计,要求仓库中的 SQL 与期望 schema 保持一致。它不做迁移版本管理,也不自动阻止破坏性变更:DROP TABLE 之类的语句会原样出现在计划里,需要评审者自己判断。生成计划需要读取目标库元数据的权限,建议在只读副本上运行检查。当前没有 Debian 包,环境要求需要提前确认。

使用场景

  • 团队提交SQL变更后,需在合并前对比线上结构并生成可审查的执行计划。
  • AI agent准备操作生产数据库前,需确认线上schema与仓库中的声明式SQL一致。
  • DBA收到一份待执行的schema变更,需先审查生成的apply plan是否安全。
  • 迁移脚本中途失败后,需检查线上结构与仓库SQL的差异范围。

适合人员

  • 后端工程师,需要在合并SQL变更前确认不会引入schema漂移。
  • DevOps工程师,需要在CI流水线中集成schema差异检查作为质量门禁。
  • AI agent开发者,需要在agent直接操作数据库前验证schema一致性。
  • DBA,需要审查并批准即将执行的schema变更计划。