Testland
Browse all skills & agents

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-qa
View source

Part 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

TypeNameDescription
Skillflyway-migrationsV/U/R prefix versioned SQL migrations + flyway_schema_history; production guards (cleanDisabled, validateOnMigrate)
Skillliquibase-migrationsXML/YAML/JSON/SQL changelog with preconditions + contexts/labels + per-changeset rollback
Skillatlas-migrationsTerraform-style declarative HCL or SQL schema; atlas migrate diff/apply/lint with destructive-pattern detection
Skillmigration-operation-taxonomyClassifies 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.
Agentmigration-blast-radius-reviewerAdversarial 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-qa

Skills

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.