← ClaudeAtlas

devlab-dao-sql-compatlisted

DAO 层通用 SQL 方言兼容性检查 + 系统性修复工作流。支持 MyBatis/JPA/MyBatis-Plus/SQLAlchemy 四种持久层框架,扫描源码识别 Oracle/PostgreSQL/MySQL 方言混用风险,自动修复 80% 常见陷阱,剩余 20% 由 Agent 辅助人工确认。七阶段流程 + adapter 模式框架适配。触发词:SQL 兼容性、方言混用、Oracle 转 PG、PG 转 Oracle、MyBatis 迁移、JPA 方言、Hibernate SQL、SQLAlchemy raw SQL、数据库国产化改造、DAO 层 SQL 检查。
seed-forge/harness-ai-kit · ★ 22 · API & Backend · score 74
Install: claude install-skill seed-forge/harness-ai-kit
# devlab-dao-sql-compat ## 用途 面向使用任何持久层框架(MyBatis / JPA / MyBatis-Plus / SQLAlchemy)的项目,解决"同一套 DAO 代码需要运行在不同数据库(Oracle / PostgreSQL / MySQL)"或"数据库迁移"场景下的 SQL 方言兼容性问题: - **检查**:通过 adapter 模式扫描框架专属源码文件,按模块输出三方言命中矩阵与风险分级 - **修复**:AI 按转换方向加载对应映射表(references/dialects/),逐模块修复 - **验证**:静态复扫必做,库级语法预检可选,明确降级声明 - **记录**:输出前后对比与待人工复核清单 支持三方言全对称 6 个转换方向:O→PG、PG→O、O→MySQL、MySQL→O、PG→MySQL、MySQL→PG。 ## 框架探测 本技能支持 4 种 DAO 框架的 adapter,默认自动探测: | 检测特征 | 判定框架 | 扫描目标 | |---------|---------|---------| | `**/mapper/**/*.xml` 含 SQL 标签 | MyBatis | Mapper XML | | `**/*.java` 含 `@Query` / `@NamedQuery` | JPA/Hibernate | Java 源码 | | `**/*.java` 含 `QueryWrapper` / `LambdaQueryWrapper` / `BaseMapper` | MyBatis-Plus | Java + XML | | `**/*.py` 含 `text()` / `.execute()` / `session.execute` | SQLAlchemy | Python 源码 | | 多个命中 | 提示用户选择 | monorepo 可能多框架 | 也可手动指定:`bash scripts/scan-sql-compat.sh --adapter mybatis` 各框架的扫描模式、提取逻辑和方言陷阱详见 `references/adapters/` 下对应文档。 ## 配置上下文 本 Skill 的运行时配置遵循 harness-ai-kit 配置治理规范的三级优先级: > L3 对话中用户明确声明的参数 > L2 用户配置(~/.harness-ai-kit/config.yaml → 环境变量 → ~/.harness-ai-kit/.env.tak)> L1 本目录 config.defaults.yaml 配置项见 `config.defaults.yaml`:adapter / scan_dir / module_glob / report_path / custom_procs_file / fail_on_critical / verify_jdbc_url。 其中 verify_jdbc_url 为 sensitive:无默认值,只能经 L2/L3 注入,禁止写入任何文档或提交。 ## 工作流(七阶段) ### Phase 0 环境确认 1. 确认 DAO 框架类型(auto-detect 或手动 `--adapter`) 2. 确认扫描根目录(scan_dir);框架专属源码位置默认自动探测,非标准布局时向用户确认 module_glob 3. 向用户确认**目标方言拓扑**(二选一): - **单一目标