migrate

Run/create DB migrations (Alembic, Prisma, Laravel, Django, Flyway, Drizzle); checks backup. Triggers: apply migration, rollback, generate migration.

softspark/ai-toolkit6 installsApache-2.0Synced Aug 26

Works with

Claude CodeCursorCodex CLIGitHub CopilotGemini CLI
---
name: migrate
description: Run/create DB migrations (Alembic, Prisma, Laravel, Django, Flyway, Drizzle); checks backup. Triggers: apply migration, rollback, generate migration.
license: Apache-2.0
---

# /migrate - Database Migration Workflow

$ARGUMENTS

## What This Command Does

Create, run, or manage database migrations with auto-detection of the migration tool.

## Project context

- Migration tools: !`ls alembic.ini prisma/ database/migrations/ manage.py 2>/dev/null`

## Migration Status Script

Detect migration tool and report status:
```bash
python3 scripts/migration-status.py [directory]
```

Returns JSON with: `tool`, `config_file`, `migrations_dir`, `total_migrations`, `latest`, `commands{}` (status/create/upgrade/downgrade).

## Auto-Detection

| File Found | Tool | Commands |
|------------|------|----------|
| `alembic.ini` | Alembic | `alembic revision`, `alembic upgrade` |
| `prisma/schema.prisma` | Prisma | `npx prisma migrate dev` |
| `database/migrations/` + `artisan` | Laravel | `php artisan migrate` |
| `manage.py` | Django | `python manage.py migrate` |
| `flyway.conf` | Flyway | `flyway migrate` |
| `drizzle.config.ts` | Drizzle | `npx drizzle-kit push` |

## Workflow

### Create New Migration
1. Detect migration tool
2. Generate migration from model/schema changes
3. Review generated SQL
4. Validate syntax

### Run Migrations
1. Show pending migrations
2. Dry-run if supported (`--pretend`, `--sql`)
3. Backup reminder
4. Apply with user confirmation
5. Verify success

### Rollback
1. Show last applied migration
2. Confirm rollback scope
3. Execute rollback
4. Verify state

## Safety Checks (MANDATORY)

- [ ] Migration tested on development/staging first
- [ ] Rollback path verified
- [ ] No data loss in forward or backward direction
- [ ] Large table operations use concurrent/online DDL
- [ ] Backup exists or reminder given

## Usage Examples

```
/migrate                     # Show migration status
/migrate create add_users    # Create new migration
/migrate run                 # Apply pending migrations
/migrate rollback            # Rollback last migration
/migrate status              # Show applied/pending migrations
```

## Reference Skill
Use `migration-patterns` skill for zero-downtime strategies and best practices.

## Rules

- **MUST** verify a recent backup exists (or confirmed in-progress) before any forward migration on production
- **MUST** show the generated SQL (dry-run / `--pretend` / `--sql`) before applying — the user approves the diff, not just the command
- **NEVER** run destructive migrations (DROP TABLE/COLUMN, NOT NULL on existing column, type change) without a tested rollback path
- **NEVER** mix schema changes and data backfill in the same migration — they fail differently and roll back differently
- **CRITICAL**: large-table operations use the concurrent/online variant (`ALTER TABLE ... ALGORITHM=INPLACE`, `CREATE INDEX CONCURRENTLY`) — table locks in production cause outages, not slowdowns
- **MANDATORY**: migrations test on a non-production environment first with representative data volume

## Gotchas

- `alembic upgrade head` silently skips migrations with `branches` if the branch head is not explicit. Multi-head migrations need `alembic upgrade <revision>@head` or a merge migration first.
- Prisma's `prisma migrate dev` auto-generates migrations AND applies them AND reseeds the dev database. Running it on a production-connected config destroys data. Always use `prisma migrate deploy` in non-dev.
- Laravel's `migrate` command without `--force` refuses to run in `APP_ENV=production`. Scripts that blindly run `migrate` hang on interactive prompts in prod — always use `artisan migrate --force` in automation.
- Django's `migrate --fake` marks a migration as applied **without running it**. Intended for manual data fixes, but accidentally using it skips real schema changes and silently diverges production from code.
- `CREATE INDEX CONCURRENTLY` (Postgres) cannot run inside a transaction. Alembic wraps each migration in a transaction by default — concurrent index creation needs `op.execute()` with `autocommit_block()` or a manual `COMMIT`.
- Rolling back a forward migration that added a NOT NULL column deletes the column; data in that column is gone. "Rollback" is not "undo" if the column held user data during the forward window.

## When NOT to Use

- For **zero-downtime schema evolution** strategy (expand-contract, double-write) — use `/migration-patterns`
- For designing the schema from scratch — use `/database-patterns`
- For application-layer rollback (deploying previous code) — use `/rollback`
- For CI-triggered migrations — use `/ci` or `/deploy`
- When no migration tool is detected — propose one from `/app-builder` instead of ad-hoc SQL

More Deployment & CI/CD skills

azure-enterprise-infra-planner

microsoft/azure-skills

Architect and provision enterprise Azure infrastructure from workload descriptions. For cloud architects and platform engineers planning networking, identity, security, compliance, and multi-resource topologies with WAF alignment. Generates Bicep or Terraform directly (no azd). WHEN: 'plan Azure infrastructure', 'architect Azure landing zone', 'design hub-spoke network', 'plan multi-region DR topology', 'set up VNets firewalls and private endpoints', 'subscription-scope Bicep deployment', 'Azure Backup for VM workloads'. PREFER azure-prepare FOR app-centric workflows.

387.5k

azure-kubernetes-app-deploy

microsoft/azure-skills

Use when deploying an existing web application or API to an already-running Azure Kubernetes Service cluster. Detects the framework, generates a Dockerfile and Kubernetes manifests, validates against AKS Deployment Safeguards, and deploys with verification. WHEN: deploy app to AKS, deploy to existing AKS cluster, containerize app for Kubernetes, generate K8s manifests for Azure, set up CI/CD for AKS, my AKS deployment is failing safeguard checks, I have a Django/Express/Spring Boot app to run on AKS. DO NOT USE FOR: creating or provisioning an AKS cluster (use azure-kubernetes), assessing migration to AKS Automatic (use azure-kubernetes-automatic-readiness), or deploying to non-AKS targets like Web Apps, Container Apps, or Functions.

380.4k

finetuning

microsoft/azure-skills

Fine-tune models on Microsoft Foundry using SFT (supervised), DPO (preference), or RFT (reinforcement with graders). Covers dataset preparation, training job submission, deployment, and evaluation. USE FOR: fine-tune, SFT, DPO, RFT, training data, grader, distillation, fine-tuned model, training job, large file upload, calibrate grader, deploy fine-tuned model, evaluate fine-tuned model. DO NOT USE FOR: general model deployment without fine-tuning (use deploy-model), agent creation (use agents), prompt optimization without training (use prompt-optimizer).

323.2k

← All Deployment & CI/CD skills

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY