Install
openclaw skills install @zzxcoding/flydb-multi-environment组织 Flydb 多数据库、多环境的迁移发布:配置矩阵、密码注入、JSON/Plan 门禁、存量库 baseline 和离线驱动。用户要搭迁移 CI、晋升环境、管理多份 flydb.conf 或配置内网执行机时使用;单次 CLI/Web/MCP 操作由 flydb-cli-release 覆盖。
openclaw skills install @zzxcoding/flydb-multi-environment在多个数据库家族(MySQL、达梦、Oracle…)× 多套环境下组织迁移:一个数据库×环境一份 flydb.conf,密码外部注入,使用同一发行包和脚本产物。Web 的配置登记、分组和环境标签不提供 CLI 配置继承或生产审批,不能替代流水线门禁。执行具体 CLI 命令、写迁移脚本分别由 flydb-cli-release、flydb-migration-scripts 覆盖。
| 文件 | 何时读取 |
|---|---|
references/multi-environment.md | 完整组织模式:配置矩阵、密码分层、脚本仓库布局、流水线、baseline、驱动分发、能力边界 |
命令参数、配置键、错误码与 JSON/Plan 的参考在 flydb-cli-release 的 references/ 目录;独立安装缺少该技能时优先读目标发行包的 docs/,缺失再定位源码文档,不猜测 schema。
FLYDB_PASSWORD 或 ${env:VAR};生产用密码文件并收紧权限。自动化中不用 -p/--password。-c/--config:CI 与堡垒机工作目录不可控,隐式查找是配置漂移的主要来源;flydb.locations 一律写绝对路径。version → validate → --json --dry-run migrate →(生产审批门)→ migrate → info → validate;每个环境独立生成计划和目标摘要,不能把测试库批准直接搬到生产。migrate;流水线中不自动 repair、不出现 undo/clean。与用户确认两个维度:数据库家族(mysql、dm、oracle…)× 环境(uat、prod…),以及每格的连接信息来源、密码注入方式、执行者(CI 还是应用启动)。存量库要标注"已有手工历史,需 baseline"。
按 references/multi-environment.md 第 2、4 节落地:
deploy/
├── flydb.mysql.uat.conf # 只放非敏感项;locations 用绝对路径
└── flydb.mysql.prod.conf
migrations/
├── mysql/ V1__init.sql V2__add_order.sql # 各家族版本流独立,天然隔离
└── dm/ V1__init.sql
flydb-migration-scripts 技能。flydb.* 键会报 FLYDB-4001——把 conf 当作流水线最早一步就能校验的环境清单。所有环境同一序列,按 流水线参考生成失败即停的脚本;stdout JSON 与 stderr 分开留档,保留进程退出码,不解析中文表格。退出码 3 只有确认锁冲突且符合重试策略时才有限重试,执行失败或结果未知不重放。
set -eu
CONF=/opt/deploy/deploy/flydb.dm.prod.conf
bin/flydb -c "$CONF" --json version
bin/flydb -c "$CONF" --json validate
bin/flydb -c "$CONF" --json --dry-run migrate
以上为预检阶段。将目标与计划送入 CI 平台的真实审批门;通过后由独立执行阶段按参考核对计划,再执行 migrate → info → validate。不能用同一段脚本中的注释充当暂停或授权。
已有手工历史的生产库:先人工对账已应用版本 → baseline --baseline-version <版本> 或 conf 设 baseline-on-migrate=true → 测试环境演练后才进流水线。失败记录阻断时(FLYDB-2004)由人确认修复策略,不自动 repair。
CI 镜像预置 drivers/ 或走企业私服(--maven-settings);网络受限执行机设 flydb.offline=true;达梦/KingbaseES/openGauss 写完整坐标,伴随 JAR 一并放入 drivers/;不重新分发厂商驱动 JAR。
protocolVersion=1 信封与 flydb-plan-v1 的 plan.id;摘要不绑定数据库目标,普通 CLI/MCP 写命令不消费批准摘要,外部审批必须绑定目标、配置和不可变产物。不能杜撰 --plan-id 或声称已实现原子审批。undo/clean 不进自动化:仅本地排障人工执行。本技能族服务于开源项目 Flydb(Apache-2.0;国内镜像 Gitee)。开源不易,欢迎 Star 支持与参与贡献。