qa-db-migrations
Database migration testing: 4 skills (atlas-migrations, flyway-migrations, liquibase-migrations, sqlmesh-migrations) and 2 agents (db-migration-performance-critic, migration-blast-radius-reviewer). Covers schema-change safety, blast-radius review, and rollback verification across the major migration tools.
Install this plugin
/plugin install qa-db-migrations@testland-qaPart of role bundle: qa-role-backend
qa-db-migrations
Database migration testing. Three per-tool skill wrappers covering the mainstream database migration ecosystem (Flyway, Liquibase, Atlas), the operation taxonomy they share, plus an adversarial reviewer agent that classifies operations against an 8-category taxonomy, runs a DDL performance review, and refuses to approve production-unsafe patterns.
Anchored on the ISO 25010 portability characteristic. Universal need: every team that ships schema changes.
Components
| Type | Name | Description |
|---|---|---|
| Skill | flyway-migrations | V/U/R prefix versioned SQL migrations + flyway_schema_history; production guards (cleanDisabled, validateOnMigrate) |
| Skill | liquibase-migrations | XML/YAML/JSON/SQL changelog with preconditions + contexts/labels + per-changeset rollback |
| Skill | atlas-migrations | Terraform-style declarative HCL or SQL schema; atlas migrate diff/apply/lint with destructive-pattern detection |
| Skill | migration-operation-taxonomy | Classifies each DDL statement into eight operation categories with a severity justified by the lock mode and rewrite behavior the named engine and version actually performs. |
| Agent | migration-blast-radius-reviewer | Adversarial reviewer for any migration tool: 8-category operation taxonomy plus a performance review (missing CONCURRENTLY, full-table-rewrite ALTERs under ACCESS EXCLUSIVE, missing post-migration ANALYZE, lock-time estimates); refuses to approve unsafe NOT NULL or DROP COLUMN without consumer coordination |
Install
/plugin marketplace add testland/qa
/plugin install qa-db-migrations@testland-qaSkills
atlas-migrations
Authors and runs Atlas database schema migrations - declarative HCL or SQL schema definition with `atlas schema apply` for desired-state apply OR `atlas migrate diff` to generate versioned migrations against a dev DB; `atlas migrate apply` to deploy; `atlas migrate lint` to flag destructive / locking / data-loss patterns; `atlas migrate hash` to detect tampering. Supports PostgreSQL, MySQL, SQL Server, ClickHouse, SQLite, MariaDB, Snowflake, Oracle, Redshift, Spanner, CockroachDB, Databricks. Use when the user wants Terraform-style declarative DB schema management or modern SQL-first migration linting beyond Flyway / Liquibase.
flyway-migrations
Authors and runs Flyway database migrations - versioned (`V1__add_users.sql`), repeatable (`R__refresh_views.sql`), and undo (`U1__remove_users.sql`) migration files in `db/migration/`; runs `flyway migrate` / `info` / `validate` / `clean` / `baseline` / `repair`; tracks state in the `flyway_schema_history` table; supports 50+ databases including Oracle / SQL Server / MySQL / PostgreSQL / MariaDB / Snowflake / BigQuery; integrates with Maven, Gradle, CLI, and Docker. Use when the user works with Flyway-managed schemas, asks about migration ordering, or needs CI gates on schema changes.
liquibase-migrations
Authors and runs Liquibase database migrations - changelog-driven schema management with changesets in XML / YAML / JSON / SQL formats; supports `liquibase update` / `status` / `rollback` / `tag` / `history` lifecycle; offers per-changeset preconditions, contexts and labels for selective execution, and rollback semantics; tracks state in `DATABASECHANGELOG` + `DATABASECHANGELOGLOCK` tables. Use when the user works with Liquibase-managed schemas (Spring Boot heritage, polyglot DB shops), needs cross-DBMS portable migrations, or requires fine-grained rollback control.
migration-operation-taxonomy
Classifies every DDL and DML statement in a database migration into an eight-category operation taxonomy (additive, backwards-compatible alter, locking, lock-escalating, breaking, data-loss, unsafe default, index-missing foreign key) and assigns a Critical, Warning, or Info severity justified by the lock mode and table-rewrite behavior the target engine actually performs. Records where PostgreSQL and MySQL/InnoDB diverge for the same logical statement, and where behavior is version-gated (PostgreSQL 11 removed the table rewrite for a constant DEFAULT; MySQL 8.0.12 made ADD COLUMN instant). Use when a migration file appears in a diff or a review queue and someone must decide, before it reaches a production-sized table, which statements are safe and which will stall writes or destroy data.