КомандаИнструменты

/migrate

Создание и применение миграций БД: Alembic, Prisma Migrate, Django. С проверкой rollback.

Закинь в Claude, Cursor или любой AI

Описание

Простым языком

База данных — это как таблица в Excel. Иногда нужно добавить новую колонку или переименовать существующую. Просто так это не сделаешь — нужно аккуратно внести изменения, чтобы старые данные не потерялись. /migrate делает это безопасно.

Напиши /migrate create с описанием что хочешь изменить — Claude создаст инструкцию для обновления базы, проверит что всё можно откатить назад, и только потом применит. Перед удалением данных — обязательно предупредит.


Что делает

/migrate управляет миграциями базы данных: создаёт, проверяет rollback, применяет на dev или prod. Автоматически определяет систему миграций по проекту (Alembic, Prisma Migrate, Django). Перед любым деструктивным изменением (DROP) — предупреждает и создаёт бэкап.

Синтаксис

# Создать новую миграцию
/migrate create добавить индекс на questions.slug

# Применить все ожидающие миграции
/migrate apply

# Откатить последнюю миграцию
/migrate rollback

# Показать текущее состояние
/migrate status

Пошаговый процесс

  1. Определяет систему миграций: ищет alembic.ini, prisma/schema.prisma, manage.py
  2. Проверяет текущее состояние: нет ли незаappлицированных миграций
  3. create: генерирует новую миграцию с описательным именем (дата + описание)
  4. Автоматически проверяет rollback: downgrade -1upgrade head на dev-базе
  5. apply: применяет миграции с бэкапом если есть деструктивные операции
  6. При DROP TABLE/COLUMN — явное предупреждение и запрос подтверждения
  7. На prod: создаёт pg_dump бэкап перед применением

Примеры использования

Добавление новой таблицы

Разрабатываете фичу Frameworks — нужна новая коллекция. /migrate create генерирует миграцию и проверяет что rollback работает.

/migrate create добавить коллекцию frameworks

# Создана миграция:
# 20260227_182730_добавить_коллекцию_frameworks.ts

# Автопроверка rollback:
prisma migrate dev --name добавить_коллекцию_frameworks
prisma migrate reset --force  # тест rollback на dev
prisma migrate dev            # применить снова

# Результат: rollback работает, безопасно деплоить

Деструктивная миграция (удаление поля)

Удаляете deprecated поле. /migrate предупреждает и создаёт бэкап перед применением на проде.

/migrate create удалить поле legacy_username из users

# Предупреждение:
[WARN] Деструктивная операция: DROP COLUMN users.legacy_username
  Данные будут удалены безвозвратно.

  Проверьте что код не использует это поле:
  grep -r "legacy_username" src/  → 0 результатов

  Создать бэкап таблицы users перед применением?
  [да/нет]

# После подтверждения:
pg_dump -t users > backup_users_20260227.sql
Миграция применена.

Автоматизация

В CI/CD миграции применяются автоматически при деплое. Порядок: сначала миграция, потом перезапуск приложения. Если миграция упала — деплой останавливается, rollback применяется автоматически.

# Порядок деплоя в docker-compose.yml:
services:
  migrate:
    image: app
    command: npx payload migrate
    depends_on:
      postgres:
        condition: service_healthy

  app:
    image: app
    depends_on:
      migrate:
        condition: service_completed_successfully
Миграция без проверки rollback — это мина замедленного действия. /migrate проверяет это за вас.
#Commands#Claude Code#PostgreSQL
TG

> Пока нет комментариев

Связанный контент

Похожие инструменты