---
name: "flyway-versioned-database-migrations"
description: "Automate version-controlled relational database migrations across environments with Flyway."
metadata:
  author: "Redgate"
  version: "1.0.0"
  runtime_compatibility:
    - "codex"
    - "claude-code"
    - "cursor"
    - "windsurf"
triggers:
  - "create flyway migration script"
  - "repair flyway checksums"
  - "baseline on migrate flyway"
permissions:
  fs_read: true
  fs_write: "workspace"
  shell_exec: false
  net_access: false
---

# Flyway Reliable Versioned SQL Database Migrations

Configures Flyway: naming conventions for versioned SQL migrations (V1__init.sql) and repeatable scripts (R__views.sql), running migrations on startup via Spring Boot / Quarkus, baseline-on-migrate, and repairing checksums.

## When to Invoke
Invoke this skill whenever you need to:
- create flyway migration script
- repair flyway checksums
- baseline on migrate flyway

## Execution SOP & Rules
1. Name versioned migrations: V1_0__create_users_table.sql and repeatable migrations: R__user_views.sql.
2. Configure application.yml: spring.flyway.enabled=true, spring.flyway.baseline-on-migrate=true.
3. Inspect flyway_schema_history table to review applied migration versions, timestamps, and checksums.
4. Validate migrations in CI: ./mvnw flyway:info and ./mvnw flyway:migrate before deploying artifacts.

## Verification Checklist
- Run local linting, syntax validation, and type-checks before reporting completion.
- Ensure all created or modified files adhere to workspace boundaries and avoid uncommitted secrets.
- Verify tests or build commands exit cleanly with return code 0.
