Flyway Migration Skill
This skill provides patterns for managing database schema changes with Flyway.
Migration File Naming
text
db/migration/V{version}__{description}.sql
Examples:
- •
V1__Initial_schema.sql - •
V2__Text_themes.sql - •
V3__add_star_column.sql
Creating Tables
sql
-- V1__Initial_schema.sql
CREATE TABLE IF NOT EXISTS feedback
(
id VARCHAR DEFAULT gen_random_uuid() PRIMARY KEY,
opprettet TIMESTAMPTZ NOT NULL,
feedback_json TEXT NOT NULL,
team VARCHAR(255) NOT NULL,
app VARCHAR(255) NOT NULL,
tags TEXT NULL
);
CREATE INDEX IF NOT EXISTS idx_feedback_opprettet ON feedback(opprettet);
CREATE INDEX IF NOT EXISTS idx_feedback_team ON feedback(team);
CREATE INDEX IF NOT EXISTS idx_feedback_team_app ON feedback(team, app);
Adding Columns
sql
-- V3__add_star_column.sql ALTER TABLE feedback ADD COLUMN stjerne BOOLEAN NOT NULL DEFAULT FALSE; CREATE INDEX IF NOT EXISTS idx_feedback_stjerne ON feedback(stjerne);
Best Practices
- •Never modify existing migrations: Create a new migration instead
- •Prefer simple transactional migrations
- •Keep migrations small: One logical change per migration