database-patterns

Comprehensive patterns for database migrations, schema design, and version management. Each category has individual rule files in rules/ loaded on-demand.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "database-patterns" with this command: npx skills add yonatangross/orchestkit/yonatangross-orchestkit-database-patterns

Database Patterns

Comprehensive patterns for database migrations, schema design, and version management. Each category has individual rule files in rules/ loaded on-demand.

Quick Reference

Category Rules Impact When to Use

Alembic Migrations 3 CRITICAL Autogenerate, data migrations, branch management

Schema Design 3 HIGH Normalization, indexing strategies, NoSQL patterns

Versioning 3 HIGH Changelogs, rollback plans, schema drift detection

Zero-Downtime Migration 2 CRITICAL Expand-contract, pgroll, rollback monitoring

| Database Selection | 1 | HIGH | Choosing the right database, PostgreSQL vs MongoDB, cost analysis |

Total: 12 rules across 5 categories

Quick Start

Alembic: Auto-generate migration from model changes

alembic revision --autogenerate -m "add user preferences"

def upgrade() -> None: op.add_column('users', sa.Column('org_id', UUID(as_uuid=True), nullable=True)) op.execute("UPDATE users SET org_id = 'default-org-uuid' WHERE org_id IS NULL")

def downgrade() -> None: op.drop_column('users', 'org_id')

-- Schema: Normalization to 3NF with proper indexing CREATE TABLE orders ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), customer_id UUID NOT NULL REFERENCES customers(id), created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX idx_orders_customer_id ON orders(customer_id);

Alembic Migrations

Migration management with Alembic for SQLAlchemy 2.0 async applications.

Rule File Key Pattern

Autogenerate ${CLAUDE_SKILL_DIR}/rules/alembic-autogenerate.md

Auto-generate from models, async env.py, review workflow

Data Migration ${CLAUDE_SKILL_DIR}/rules/alembic-data-migration.md

Batch backfill, two-phase NOT NULL, zero-downtime

Branching ${CLAUDE_SKILL_DIR}/rules/alembic-branching.md

Feature branches, merge migrations, conflict resolution

Schema Design

SQL and NoSQL schema design with normalization, indexing, and constraint patterns.

Rule File Key Pattern

Normalization ${CLAUDE_SKILL_DIR}/rules/schema-normalization.md

1NF-3NF, when to denormalize, JSON vs normalized

Indexing ${CLAUDE_SKILL_DIR}/rules/schema-indexing.md

B-tree, GIN, HNSW, partial/covering indexes

NoSQL Patterns ${CLAUDE_SKILL_DIR}/rules/schema-nosql.md

Embed vs reference, document design, sharding

Versioning

Database version control and change management across environments.

Rule File Key Pattern

Changelog ${CLAUDE_SKILL_DIR}/rules/versioning-changelog.md

Schema version table, semantic versioning, audit trails

Rollback ${CLAUDE_SKILL_DIR}/rules/versioning-rollback.md

Rollback testing, destructive rollback docs, CI verification

Drift Detection ${CLAUDE_SKILL_DIR}/rules/versioning-drift.md

Environment sync, checksum verification, migration locks

Database Selection

Decision frameworks for choosing the right database. Default: PostgreSQL.

Rule File Key Pattern

Selection Guide ${CLAUDE_SKILL_DIR}/rules/db-selection.md

PostgreSQL-first, tier-based matrix, anti-patterns

Key Decisions

Decision Recommendation Rationale

Async dialect postgresql+asyncpg

Native async support for SQLAlchemy 2.0

NOT NULL column Two-phase: nullable first, then alter Avoids locking, backward compatible

Large table index CREATE INDEX CONCURRENTLY

Zero-downtime, no table locks

Normalization target 3NF for OLTP Reduces redundancy while maintaining query performance

Primary key strategy UUID for distributed, INT for single-DB Context-appropriate key generation

Soft deletes deleted_at timestamp column Preserves audit trail, enables recovery

Migration granularity One logical change per file Easier rollback and debugging

Production deployment Generate SQL, review, then apply Never auto-run in production

Anti-Patterns (FORBIDDEN)

NEVER: Add NOT NULL without default or two-phase approach

op.add_column('users', sa.Column('org_id', UUID, nullable=False)) # LOCKS TABLE!

NEVER: Use blocking index creation on large tables

op.create_index('idx_large', 'big_table', ['col']) # Use CONCURRENTLY

NEVER: Skip downgrade implementation

def downgrade(): pass # WRONG - implement proper rollback

NEVER: Modify migration after deployment - create new migration instead

NEVER: Run migrations automatically in production

Use: alembic upgrade head --sql > review.sql

NEVER: Run CONCURRENTLY inside transaction

op.execute("BEGIN; CREATE INDEX CONCURRENTLY ...; COMMIT;") # FAILS

NEVER: Delete migration history

command.stamp(alembic_config, "head") # Loses history

NEVER: Skip environments (Always: local -> CI -> staging -> production)

Detailed Documentation

Resource Description

${CLAUDE_SKILL_DIR}/references/

Advanced patterns: Alembic, normalization, migration, audit, environment, versioning

${CLAUDE_SKILL_DIR}/checklists/

Migration deployment and schema design checklists

${CLAUDE_SKILL_DIR}/examples/

Complete migration examples, schema examples

${CLAUDE_SKILL_DIR}/scripts/

Migration templates, model change detector

Zero-Downtime Migration

Safe database schema changes without downtime using expand-contract pattern and online schema changes.

Rule File Key Pattern

Expand-Contract ${CLAUDE_SKILL_DIR}/rules/migration-zero-downtime.md

Expand phase, backfill, contract phase, pgroll automation

Rollback & Monitoring ${CLAUDE_SKILL_DIR}/rules/migration-rollback.md

pgroll rollback, lock monitoring, replication lag, backfill progress

Related Skills

  • sqlalchemy-2-async

  • Async SQLAlchemy session patterns

  • ork:testing-integration

  • Integration testing patterns including migration testing

  • caching

  • Cache layer design to complement database performance

  • ork:performance

  • Performance optimization patterns

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ui-components

No summary provided by upstream source.

Repository SourceNeeds Review
General

responsive-patterns

No summary provided by upstream source.

Repository SourceNeeds Review
General

domain-driven-design

No summary provided by upstream source.

Repository SourceNeeds Review