Комментарии (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
- Одна миграция = одна логическая задача
- Версионируй миграции — по номерам или временным меткам
- Всегда добавляй
DOWN— сценарий отката - Тестируй откаты — убедись, что можно откатить и переприменить
Миграции — это критичны для работы в команде и развёртывания приложения.