← ClaudeAtlas

flydb-migration-scriptslisted

创建、修改和组织 Flydb 的 V/R/U 迁移 SQL,处理命名、版本族与目录版本、路径过滤、占位符和历史 checksum。用户要写迁移脚本、重组 locations 或修正脚本相关 FLYDB-2xxx ���误时使用;数据库执行与恢复操作交给 flydb-cli-release。
zzxCoding/skills · ★ 1 · API & Backend · score 61
Install: claude install-skill zzxCoding/skills
# Flydb 迁移脚本目录管理 在使用 Flydb 的项目里创建、修改和组织迁移脚本目录。本技能管"写脚本":命名、版本、目录布局与修改纪律;执行 CLI(migrate/validate 等)用姊妹技能 `flydb-cli-release`,多环境/CI 自动化用 `flydb-multi-environment`(总入口为 `flydb` 技能),各技能可独立使用。 ## 参考文档(按任务读取) | 文件 | 何时读取 | |---|---| | [`references/naming-and-versions.md`](references/naming-and-versions.md) | 命名语法、版本规则、三类脚本语义、版本策略、目录组织、占位符 | | [`references/errors-and-discipline.md`](references/errors-and-discipline.md) | 修改红线、脚本目录相关错误码处置、FLYDB-2003 分类、失败记录流程 | ## 核心契约 1. **改动范围**:只在迁移脚本目录内新增/编辑 SQL 文件(以及经用户确认的 `flydb.locations` 配置);不动其他项目文件。 2. **绝不改写已应用的版本化脚本**来"修复"历史——对已应用 `V` 脚本的任何变更(内容、格式、文件名)都用新版本脚本承载。checksum 记录在历史表里,改动即 `FLYDB-2003`。用户明确要求修改已应用脚本时,先说明后果(校验失败/需 repair),确认后再动。 3. **文件名必须可解析**:`V`/`U` 候选命名不合法时 Flydb 报 `FLYDB-2001` 阻断,不会静默跳过;交付前自行核对命名。 4. **跟随既有风格**:新脚本的版本策略(递增整数/日期版本/目录版本)与现有项目一致;空目录且无约定时采用递增整数并说明选择,只有会影响既有历史的风格冲突才澄清。 5. **校验后交付**:新增/修改脚本后建议用户跑 `validate` 与 `--dry-run migrate` 核对(只读检查);本技能不主动执行写入数据库的命令。 ## 工作流 ### 1. 定位脚本目录 - 读 `flydb.conf` 的 `flydb.locations`(或 `-l` 参数);没有配置文件时 CLI 默认 `filesystem:db/migration`。 - `filesystem:` 相对路径以执行 CLI 的工作目录为基准,先解析成绝对路径再操作,避免看错目录。 - 目录不存在时报 `FLYDB-4005` 的是配置问题:核对前缀与路径,而不是创建一堆空目录掩盖。 ### 2. 盘点现状(只读) 用 `bin/flydb info --color=never`(需要数据库连接)或直接 `find <脚本目录> -name '*.sql' | sort` 盘点: - 现有脚本的类型分布(V/R/U)与版本风格; - 哪些版本已应用、哪些待执行(info 有库时); - 是否存在失败记录或 MISSING/FUTURE 迹象——有则先按 [`references/errors-and-discipline.md`](references/errors-and-discipline.md) 处置,再叠加新变更。 ### 3. 新增脚本 1. 读 [`references/naming-and-versions.md`](refe