尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ruflo-migrations 插件实战:使用 migrate 命令管理 Agent 数据库 Schema 迁移

ruflo-migrations 插件实战:使用 migrate 命令管理 Agent 数据库 Schema 迁移 ruflo-migrations 插件实战使用 migrate 命令管理 Agent 数据库 Schema 迁移【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo导读本文以 ruflo 仓库中ruflo-migrations插件的migrate命令文档为骨架系统讲解在 Claude Code / Codex 等 Agent 环境中如何创建、应用、回滚、校验与审查数据库迁移。你将掌握migrate create / up / down / status / validate / history六个子命令的完整用法理解顺序编号迁移文件的格式约定、up/down 成对 SQL 的回滚安全模型以及迁移元数据如何在 AgentDB 的migrations命名空间中持久化并学会用插件的 smoke 契约完成验证。插件概览Schema 迁移管理ruflo-migrations是 ruflo 生态中的数据库 Schema 迁移管理插件负责生成、校验、预演dry-run与回滚数据库迁移。它的核心设计目标有三点顺序编号迁移文件按NNN_name.up.sql/NNN_name.down.sql成对生成支持安全回滚dry-run 预演在不执行 SQL 的前提下预览待应用迁移的内容历史追踪迁移的元数据、执行结果与校验报告统一写入 AgentDB 的migrations命名空间由memory_*工具族按命名空间路由读写。插件由 1 个 Agentmigration-engineer、2 个 Skillmigrate-create、migrate-validate和 1 个命令migrate含 6 个子命令构成当前版本为 v0.2.1声明在 plugins/ruflo-migrations/.claude-plugin/plugin.jsonkeywords 为ruflo, migrations, database, schema, rollback, mcp, dry-run, up-down-pairs。安装在 Claude Code 中通过插件目录加载claude --plugin-dir plugins/ruflo-migrations插件通过ruflo-core注册的rufloMCP 服务器314 个工具访问底层能力其中与本插件相关的工具族包括memory_*命名空间路由的读写、agentdb_pattern-*ReasoningBank 路由的模式存储等详见 plugins/ruflo-core/README.md。migrate 命令的六个子命令migrate命令提供 6 个子命令覆盖迁移的完整生命周期migrate create name # 创建 NNN_name.up.sql 和 NNN_name.down.sql migrate up [--dry-run] # 应用待执行迁移或仅预览 SQL migrate down [--steps N] # 回滚最近 N 个迁移默认 1 migrate status # 展示已应用/待应用迁移状态 migrate validate # 校验待应用迁移的安全性 migrate history # 展示完整迁移执行历史命令入口文件为 plugins/ruflo-migrations/commands/migrate.md其 frontmatter 声明description: Database migration operations — create, apply, rollback, validate, and inspect migration history。migrate createname— 创建带顺序编号的新迁移创建迁移的核心是顺序编号的自动推导执行步骤扫描迁移目录找出已有迁移文件中的最高编号计算下一个编号加 1 后按 3 位零填充zero-padded如001生成文件对产出NNN_name.up.sql和NNN_name.down.sql两个文件填充 SQL 模板根据name选择对应的模板建表、加列、加索引存储迁移元数据通过mcp__plugin_ruflo-core_ruflo__memory_store --namespace migrations记录编号、名称、状态pending与文件路径报告结果输出创建的文件路径、迁移编号与使用的模板。路由要点迁移元数据必须走memory_*工具族按命名空间路由。agentdb_hierarchical-*系列按tierworking|episodic|semantic路由并不认命名空间参数——这是 ADR-0001 修复的一类真实缺陷见下文命名空间协调。模板选择规则来自 plugins/ruflo-migrations/skills/migrate-create/SKILL.md名称前缀/特征选用模板create_开头CREATE TABLE 模板add_开头ALTER TABLE ADD COLUMN 模板drop_开头DROP带安全检查模板名称包含indexCREATE INDEX 模板其他带占位注释的通用模板生成的 UP 语句使用IF NOT EXISTS保证幂等DOWN 语句使用IF EXISTS保证安全逆操作。迁移号与命名规范来自 migration-engineer格式NNN_descriptive_name如001_create_users每个迁移两个文件NNN_name.up.sql与NNN_name.down.sql编号 3 位零填充名称 snake_case简洁描述变更。标准 SQL 模板示例见 migration-engineer.md建表-- UP CREATE TABLE IF NOT EXISTS table_name ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- DOWN DROP TABLE IF EXISTS table_name;加列-- UP ALTER TABLE table_name ADD COLUMN column_name TYPE NOT NULL DEFAULT value; -- DOWN ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;加索引-- UP CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_table_column ON table_name (column_name); -- DOWN DROP INDEX CONCURRENTLY IF EXISTS idx_table_column;创建完成后可调用agentdb_pattern-search检索过往相似迁移模式注意pattern-*工具按 ReasoningBank 路由不要传namespace参数。CLI 等效操作npx claude-flow/clilatest memory store --namespace migrations --key migration-NNN_NAME --value {number: NNN, name: NAME, status: pending}migrate up [--dry-run] — 应用待执行迁移up负责把未应用的迁移按顺序执行回顾迁移历史确定哪些迁移已被应用找出待应用迁移按顺序列出所有未应用的迁移dry-run 模式若带--dry-run仅展示每个待应用迁移的 SQL不执行执行非 dry-run 时按顺序执行每个.up.sql文件并记录结果存储执行结果将成功/失败与耗时写入migrations命名空间报告输出已应用迁移数、总耗时与任何错误。dry-run 是 CI 前预览变更的最安全方式——它把将要执行什么完整呈现给审查者避免未经审查的 DDL 直接落库。migrate down [--steps N] — 回滚最近 N 个迁移回滚方向与up严格相反回顾迁移历史找到最近应用的迁移按逆序执行对应的.down.sql文件将回滚结果记录到migrations命名空间报告已回滚的迁移与错误。默认只回滚最近 1 个迁移--steps 1可通过--steps N指定回滚数量。up/down 成对设计保证了每个迁移都可以精确逆操作——这正是回滚安全rollback safety的基石。migrate status — 展示迁移状态status是迁移进度的只读快照列出迁移目录中发现的全部迁移文件与已应用的迁移历史交叉比对展示每个迁移的编号、名称、状态applied/pending、应用日期与耗时。通过一次status即可判断当前 Schema 处于哪个版本、还有哪些迁移待执行。migrate validate — 校验待应用迁移的安全性validate在应用之前发现隐患检查项覆盖引用完整性、回滚完备性与命名规范解析 SQL解析所有待应用的.up.sql与.down.sql外键目标检查确认REFERENCES目标存在于当前 Schema 或之前的迁移中NOT NULL 默认值检查确认ADD COLUMN ... NOT NULL均带DEFAULT破坏性操作标记标记DROP TABLE、DROP COLUMN等破坏性操作UP/DOWN 对应检查确认每个 UP 语句都有对应的 DOWN 语句命名规范检查表名复数、列名 snake_case、索引名遵循idx_table_column约定报告输出 errors必须修复、warnings应当修复、info建议三级结果并附文件路径与行号。校验逻辑的完整清单来自 migrate-validate SKILL 与 migration-engineer.md检查项严重级别说明外键目标存在Error被引用表/列必须存在索引覆盖WarningWHERE/JOIN 用到的列应有索引数据类型兼容ErrorALTER COLUMN 类型必须兼容NOT NULL 无默认值Error添加 NOT NULL 列必须带 DEFAULTDOWN 迁移完备性Warning每个 UP 语句需对应 DOWN 语句破坏性操作WarningDROP TABLE / DROP COLUMN 需审查确认命名规范Info表名复数、列名 snake_case幂等性Warning使用 IF EXISTS / IF NOT EXISTS校验结果的存储采用双路径设计对齐 ruflo-cost-tracker ADR-0001 的 dual-path 模式模式存储推荐类型化mcp__plugin_ruflo-core_ruflo__agentdb_pattern-storetype: migration-validation不传 namespace——由 ReasoningBank 路由普通存储可按命名空间路由mcp__plugin_ruflo-core_ruflo__memory_store --namespace migrations将校验结果关联到具体迁移编号。CLI 等效查询npx claude-flow/clilatest memory search --query migration validation results --namespace migrationsmigrate history — 查看完整迁移执行历史history输出所有迁移的执行轨迹回顾migrations命名空间中的全部条目展示编号、名称、方向up/down、时间戳、耗时、状态高亮失败迁移提示需要人工关注。命名空间协调为什么必须用 memory_* 工具族本插件独占AgentDB 的migrations命名空间与federation相同插件名即意图时 kebab-case 隐含成立遵循 ruflo-agentdb ADR-0001 §Namespace convention 的约定。三个保留命名空间pattern、claude-memories、default不得被遮蔽。这里有一个容易踩坑的路由细节也是 ADR-0001 — ruflo-migrations plugin contract 修复的核心 bugmemory_*工具族memory_store、memory_search、memory_list按命名空间路由——传--namespace migrations即写入/读取migrations空间agentdb_hierarchical-*与agentdb_pattern-*工具族分别按tierworking/episodic/semantic与 ReasoningBank路由会忽略命名空间字符串早期版本在 Skill 中对agentdb_hierarchical-*传命名空间参数导致读写被静默忽略这是 ADR-0001 记录的一类真实缺陷与ruflo-cost-tracker、ruflo-market-data属同一 bug 类。修复后两个 Skill 均已改为memory_*访问migrate-create用memory_store --namespace migrations写元数据migrate-validate用memory_search/memory_list --namespace migrations读历史。迁移文件格式约定迁移目录的标准形态见 README.mdmigrations/ 001_create_users.up.sql 001_create_users.down.sql 002_add_email_index.up.sql 002_add_email_index.down.sql每个迁移编号对应一对 up/down 文件保证任意时刻都可以正向推进或逆向回滚。验证契约smoke.sh插件的可验证契约是 plugins/ruflo-migrations/scripts/smoke.sh运行方式bash plugins/ruflo-migrations/scripts/smoke.sh # Expected: 10 passed, 0 failed10 项结构性检查覆盖与 ADR-0001 的决策一一对应plugin.json声明 v0.2.1 且包含mcp、dry-run、up-down-pairs关键词两个 Skill Agent Command 均存在且 frontmatter 合法name:/description:/allowed-tools:migrate命令覆盖 6 个子命令create/up/down/status/validate/historymigrate-create使用memory_store不再残留agentdb_hierarchical-store ... migrations的错用模式migrate-validate使用memory_search/memory_list不再残留agentdb_hierarchical-recall ... migrationsmigrate-validate文档化双路径ReasoningBank memory_store --namespace migrationsREADME 将 CLI 锁定在claude-flow/cliv3.6 大版本README 引用 ruflo-agentdb 的命名空间约定ADR-0001 存在且状态为 AcceptedSkill 的allowed-tools无通配符授权安全底线。兼容性说明插件将 CLI 锁定到 v3.6 的 majorminorREADME.md Compatibility 节。插件的验证机制即 smoke 契约而非 package.json 版本钉扎——这正是 ruflo 生态smoke-as-contract的通用模式。迁移 Agentmigration-engineer 的职责划分插件内置的 migration-engineer Agent模型 sonnet承担五项职责生成顺序编号迁移、创建 up/down 对、dry-run 预演、校验迁移外键一致性、索引覆盖、数据类型兼容、追踪迁移历史。它同时具备神经网络学习与记忆学习能力# 神经学习任务成功后训练迁移模式 npx claude-flow/clilatest hooks post-task --task-id TASK_ID --success true --train-neural true npx claude-flow/clilatest neural train --pattern-type migrations --epochs 10 # 记忆学习存储迁移模式与校验结果 npx claude-flow/clilatest memory store --namespace migrations --key migration-NNN_NAME --value MIGRATION_METADATA_JSON npx claude-flow/clilatest memory search --query migrations adding foreign keys --namespace migrations生态协作ruflo-migrations与周边插件形成 Schema 治理闭环README.md Related Pluginsruflo-agentdb命名空间约定的属主本插件的路由规则即由其 ADR-0001 定义ruflo-adr将 Schema 变更决策记录为架构决策记录ADRruflo-ddd让迁移边界与聚合根、限界上下文对齐ruflo-observability追踪迁移执行耗时与失败率ruflo-security-audit检查迁移中的 SQL 注入与权限提升风险见 migration-engineer.md。小结migrate命令为 Agent 驱动的数据库演进提供了完整闭环create保证顺序与成对生成up/down提供可预演、可回滚的执行路径validate在落库前拦截外键断裂、缺失默认值等隐患status/history让迁移状态全程可审计。而migrations命名空间 memory_*工具族的路由约定确保了迁移元数据在 Agent 长期记忆中的可靠持久化——这套设计既适合单 Agent 的开发场景也能无缝嵌入多 Agent 协同的 ruflo 工作流。【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表