ClaudeMods
☰
KO
● 0 명 접속 중 · 조회 0 회
후원프로젝트 제출
GitHub 저장소 · 작성자 ruvnet

ruflo-migrations

생성, 검증, dry-run, 롤백 명령과 강화 전용 비밀 가드 및 /migrations-mod를 제공하는 Claude Code 스키마 마이그레이션 관리 플러그인입니다.

ruvnet@ruvnet

ruvnet/ruflo/tree/main/plugins/ruflo-migrations

번역 완료

이 mod 소개

ruflo-migrations는 데이터베이스 스키마 마이그레이션을 관리하는 Claude Code 플러그인입니다. 순서가 붙은 up/down SQL 쌍을 생성하고 보류 중인 마이그레이션의 외래 키 일관성, 인덱스 적용 범위, 롤백 안전성, 파괴적 작업, 명명 규칙을 검증하며 dry-run 미리 보기, 마이그레이션 적용과 롤백, AgentDB의 마이그레이션 이력 추적을 지원합니다. sonnet 기반 migration-engineer 에이전트와 /migrate-create 및 /migrate-validate 스킬을 제공합니다. function-hook mod로서 비밀이나 인라인 비밀번호가 있는 데이터베이스 URL을 포함한 메모리 쓰기를 거부하는 강화 전용 가드(기본 활성화), 로컬 상태 및 SQL 스캔용 읽기 전용 /migrations-mod 명령, .claude-flow/migrations-mod/status.json 상태 파일을 추가합니다. 네트워크 통신, 프로세스 생성, 모델 호출은 하지 않습니다. claude --plugin-dir plugins/ruflo-migrations로 설치하고 smoke 스크립트 또는 claude plugin validate/test로 검증합니다.

설치

먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.

claude plugin marketplace add ruvnet/ruflo
claude plugin install ruflo-migrations
원문 / README

ruflo-migrations

Schema migration management -- generate, validate, dry-run, and rollback database migrations.

Overview

Generates sequentially numbered database migrations with up/down SQL pairs for rollback safety. Includes dry-run mode to preview SQL without executing, validation checks for foreign key consistency, index coverage, and naming conventions, plus full migration history tracking in AgentDB.

Installation

claude --plugin-dir plugins/ruflo-migrations

Agents

| Agent | Model | Role | |-------|-------|------| | migration-engineer | sonnet | Generate sequential migrations, create up/down pairs, dry-run validation, rollback safety checks |

Skills

| Skill | Usage | Description | |-------|-------|-------------| | migrate-create | /migrate-create <name> | Create a new sequentially numbered migration with up/down SQL files | | migrate-validate | /migrate-validate | Validate pending migrations for FK consistency, rollback safety, and best practices |

Commands (6 subcommands)

migrate create <name>        # Create NNN_name.up.sql and NNN_name.down.sql
migrate up [--dry-run]       # Apply pending migrations (or preview SQL)
migrate down [--steps N]     # Rollback last N migrations (default: 1)
migrate status               # Show applied/pending migration status
migrate validate             # Validate pending migrations for safety
migrate history              # Show full migration execution history

Validation Checks

| Check | Severity | Description | |-------|----------|-------------| | Foreign key targets exist | Error | Referenced table/column must exist | | Index coverage | Warning | WHERE/JOIN columns should be indexed | | Data type compatibility | Error | ALTER COLUMN type must be compatible | | NOT NULL without default | Error | Adding NOT NULL column requires DEFAULT | | Down migration completeness | Warning | Every UP needs a corresponding DOWN | | Destructive operations | Warning | DROP TABLE/COLUMN flagged for review | | Naming conventions | Info | Tables plural, columns snake_case | | Idempotency | Warning | Use IF EXISTS / IF NOT EXISTS |

Migration File Format

migrations/
  001_create_users.up.sql
  001_create_users.down.sql
  002_add_email_index.up.sql
  002_add_email_index.down.sql

Compatibility

  • CLI: pinned to @claude-flow/cli v3.6 major+minor.
  • Verification: bash plugins/ruflo-migrations/scripts/smoke.sh is the contract.

Namespace coordination

This plugin owns the migrations AgentDB namespace (kebab-case is implicit when the plugin name is the intent — same documented exception as federation). Follows the convention from ruflo-agentdb ADR-0001 §"Namespace convention". Reserved namespaces (pattern, claude-memories, default) MUST NOT be shadowed.

migrations is accessed via memory_* tools (namespace-routed). Tracks migration metadata, applied/pending status, and validation results.

Routing note: Earlier versions of these skills used agentdb_hierarchical-* and agentdb_pattern-store with namespace arguments — those tool families route by tier/ReasoningBank and ignore namespace strings. ADR-0001 fixed the skills to use memory_* for namespaced reads/writes.

Verification

bash plugins/ruflo-migrations/scripts/smoke.sh
# Expected: "10 passed, 0 failed"

Architecture Decisions

Related Plugins

  • ruflo-agentdb — namespace convention owner; defines the routing rules ADR-0001 fixes a violation of
  • ruflo-adr -- Document schema change decisions as ADRs
  • ruflo-ddd -- Align migration boundaries with aggregate roots
  • ruflo-observability -- Track migration execution duration and failure rates

License

MIT

As a mod

Function-hook mod (ADR-445 pattern, hooks/register.ts). It adds, with no network, no process spawning and no model call:

  • Guard (tighten-only, default on): refuses a memory write (memory_store, agentdb_*store/batch) that holds a secret or a database URL with an inline password. The deny reason names the rule, never the value.
  • /migrations-mod: local status and scan <text> (secret check, same rules as the guard); /migrations-mod scan <sql> lints SQL for DROP/TRUNCATE/DROP COLUMN/DELETE-without-WHERE (read-only).
  • Status file .claude-flow/migrations-mod/status.json ({version:1, updatedMs, guard, checked, blocked, ...}), written at session start and when counters change.

Per-prompt context is deliberately not added: this plugin has nothing worth attaching to every prompt.

| Option | Default | Effect | |---|---|---| | guard | on | refuse the calls above |

Test: claude plugin validate plugins/ruflo-migrations, claude plugin test plugins/ruflo-migrations, bash plugins/ruflo-migrations/scripts/smoke.sh.

비슷한 프로젝트