Install
openclaw skills install @zzxcoding/flydb-migration-scripts创建、修改和组织 Flydb 的 V/R/U 迁移 SQL,处理命名、版本族与目录版本、路径过滤、占位符和历史 checksum。用户要写迁移脚本、重组 locations 或修正脚本相关 FLYDB-2xxx 错误时使用;数据库执行与恢复操作交给 flydb-cli-release。
openclaw skills install @zzxcoding/flydb-migration-scripts在使用 Flydb 的项目里创建、修改和组织迁移脚本目录。本技能管"写脚本":命名、版本、目录布局与修改纪律;执行 CLI(migrate/validate 等)用姊妹技能 flydb-cli-release,多环境/CI 自动化用 flydb-multi-environment(总入口为 flydb 技能),各技能可独立使用。
| 文件 | 何时读取 |
|---|---|
references/naming-and-versions.md | 命名语法、版本规则、三类脚本语义、版本策略、目录组织、占位符 |
references/errors-and-discipline.md | 修改红线、脚本目录相关错误码处置、FLYDB-2003 分类、失败记录流程 |
flydb.locations 配置);不动其他项目文件。V 脚本的任何变更(内容、格式、文件名)都用新版本脚本承载。checksum 记录在历史表里,改动即 FLYDB-2003。用户明确要求修改已应用脚本时,先说明后果(校验失败/需 repair),确认后再动。V/U 候选命名不合法时 Flydb 报 FLYDB-2001 阻断,不会静默跳过;交付前自行核对命名。validate 与 --dry-run migrate 核对(只读检查);本技能不主动执行写入数据库的命令。flydb.conf 的 flydb.locations(或 -l 参数);没有配置文件时 CLI 默认 filesystem:db/migration。filesystem: 相对路径以执行 CLI 的工作目录为基准,先解析成绝对路径再操作,避免看错目录。FLYDB-4005 的是配置问题:核对前缀与路径,而不是创建一堆空目录掩盖。用 bin/flydb info --color=never(需要数据库连接)或直接 find <脚本目录> -name '*.sql' | sort 盘点:
references/errors-and-discipline.md 处置,再叠加新变更。references/naming-and-versions.md 确定类型与版本:
V<新版本>__<描述>.sql,版本取项目风格的下一个;R__<描述>.sql(无版本号,R1__ 会报 FLYDB-2005);U<同版本>__<描述>.sql(缺它 undo 报 FLYDB-2008)。create_user、add_order_index)。${...} 是占位符语法,业务运行时模板要原样入库时设 placeholder-replacement=false,同时核对其他迁移占位符是否需要替换。| 对象 | 状态 | 允许的动作 |
|---|---|---|
V 脚本 | 已应用(在历史表中) | 只能新增后续版本承载变更;不改不删不改名 |
V 脚本 | 未应用 | 可自由修改(含 dry-run 暴露问题的修正) |
R 脚本 | 任意 | 可修改;提醒 checksum 变化会在下次 migrate 重跑,确认幂等 |
U 脚本 | — | 与对应 V 同版本配对;已应用的 V 的回退修正走新版本 |
| 任意 | 已应用且要删除/移动 | 默认拒绝;目录重组时新旧 locations 并列过渡 |
建议并协助用户执行:
# 密码已由环境或密码文件注入
bin/flydb validate
bin/flydb --json --dry-run migrate
核对:新脚本出现在预期位置、版本顺序正确、无命名告警、dry-run 的 SQL 符合预期。先按有效 locations、路径过滤和版本模式计算预期集合,不能用目录下全部 SQL 数量代替计划数量;显式版本选择排除 R 脚本。无数据库连接时只报告静态命名/配置检查,标明 validate 与 dry-run 未执行。
20230531/V20230531.1__... 目录组织时,配套 version-source=directory、migration-order=directory-version;文件版本必须属于目录版本族,否则 FLYDB-2001。已应用脚本的相对路径变化会改变历史表对账路径,重组前先与用户确认影响。R1__ 旧命名迁移到 0.2 规则时,逐个改名(回退 → U<版本>__,可重复 → R__),没有兼容开关。1 与 1.0 语义等价也算重复(FLYDB-2002);新增前检查现有版本集合。migrate、repair、undo 等执行类操作和授权流程见 flydb-cli-release 技能;本技能只产出正确的脚本与配置。完成后用简洁结构汇报:
本技能族服务于开源项目 Flydb(Apache-2.0;国内镜像 Gitee)。开源不易,欢迎 Star 支持与参与贡献。