← Назад к вопросам

Что такое миграция в БД?

2.2 Middle🔥 171 комментариев
#Базы данных (SQL)

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое миграция в БД

Миграция — это контролируемое изменение структуры базы данных. Это версионированный способ изменения схемы БД, который можно откатывать и переприменять.

Основная идея

# Вместо прямого выполнения SQL команд:
# ALTER TABLE users ADD COLUMN age INT;

# Используем миграции:
# migrations/0001_add_age_to_users.sql

Инструменты для миграций

Django ORM:

python manage.py makemigrations
python manage.py migrate
python manage.py migrate auth zero  # Откат

Alembic (SQLAlchemy):

alembic revision --autogenerate -m "Add age column"
alembic upgrade head  # Применить
alembic downgrade -1  # Откатить на один шаг

Goose (Raw SQL):

goose up     # Применить миграции
goose down   # Откатить на один шаг
goose reset  # Откатить все

Структура миграции

-- 0001_create_users_table.sql
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 0002_add_age_to_users.sql
ALTER TABLE users ADD COLUMN age INT;
ALTER TABLE users ADD CONSTRAINT age_positive CHECK (age > 0);

Best Practices

  1. Одна миграция = одна логическая задача
  2. Версионируй миграции — по номерам или временным меткам
  3. Всегда добавляй DOWN — сценарий отката
  4. Тестируй откаты — убедись, что можно откатить и переприменить

Миграции — это критичны для работы в команде и развёртывания приложения.

Что такое миграция в БД? | PrepBro