database-migration-management
>
Works with
--- name: database-migration-management description: > license: MIT --- # Database Migration Management ## Table of Contents - [Overview](#overview) - [When to Use](#when-to-use) - [Quick Start](#quick-start) - [Reference Guides](#reference-guides) - [Best Practices](#best-practices) ## Overview Implement robust database migration systems with version control, rollback capabilities, and data transformation strategies. Includes migration frameworks and production deployment patterns. ## When to Use - Schema versioning and evolution - Data transformations and cleanup - Adding/removing tables and columns - Index creation and optimization - Migration testing and validation - Rollback planning and execution - Multi-environment deployments ## Quick Start Minimal working example: ```sql -- Create migrations tracking table CREATE TABLE schema_migrations ( version BIGINT PRIMARY KEY, name VARCHAR(255) NOT NULL, executed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, duration_ms INTEGER, checksum VARCHAR(64) ); -- Create migration log table CREATE TABLE migration_logs ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), version BIGINT NOT NULL, status VARCHAR(20) NOT NULL, error_message TEXT, rolled_back_at TIMESTAMP, executed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Function to record migration CREATE OR REPLACE FUNCTION record_migration( p_version BIGINT, p_name VARCHAR, p_duration_ms INTEGER ) RETURNS void AS $$ // ... (see reference guides for full implementation) ``` ## Reference Guides Detailed implementations in the `references/` directory: | Guide | Contents | |---|---| | [Adding Columns](references/adding-columns.md) | Adding Columns | | [Renaming Columns](references/renaming-columns.md) | Renaming Columns | | [Creating Indexes Non-blocking](references/creating-indexes-non-blocking.md) | Creating Indexes Non-blocking | | [Data Transformations](references/data-transformations.md) | Data Transformations | | [Table Structure Changes](references/table-structure-changes.md) | Table Structure Changes | ## Best Practices ### ✅ DO - Follow established patterns and conventions - Write clean, maintainable code - Add appropriate documentation - Test thoroughly before deploying ### ❌ DON'T - Skip testing or validation - Ignore error handling - Hard-code configuration values
More Database skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pg_cron, pgmq), vector/semantic search (pgvector), and restoring dumps (pg_restore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-database-setup
prisma/skills
Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".
prisma-postgres
prisma/skills
Prisma Postgres setup and operations guidance across Console, create-db CLI, Management API, and Management API SDK. Use when creating Prisma Postgres databases, working in Prisma Console, provisioning with create-db/create-pg/create-postgres, or integrating programmatic provisioning with service tokens or OAuth.

