📝 Django

Миграции Django

P
Автор
PyLand Team
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
285
🌱
Уровень
Начальный

Миграция — файл с описанием изменений в схеме БД. Django отслеживает состояние моделей и генерирует SQL автоматически.

Рабочий процесс

# 1. Изменил модель в models.py
# 2. Создай файл миграции
python manage.py makemigrations

# 3. Примени к БД
python manage.py migrate

makemigrations — создание файла

python manage.py makemigrations          # для всех приложений
python manage.py makemigrations tasks    # только для tasks
python manage.py makemigrations --name add_priority  # с именем

Создаёт файл вида tasks/migrations/0002_task_priority.py:

from django.db import migrations, models

class Migration(migrations.Migration):
    dependencies = [('tasks', '0001_initial')]

    operations = [
        migrations.AddField(
            model_name='task',
            name='priority',
            field=models.IntegerField(default=0),
        ),
    ]

migrate — применение

python manage.py migrate                    # применить все
python manage.py migrate tasks              # только приложение
python manage.py migrate tasks 0001         # откатить до версии
python manage.py migrate tasks zero         # откатить всё

Статус миграций

python manage.py showmigrations
# [X] tasks.0001_initial          ← применена
# [X] tasks.0002_task_priority
# [ ] tasks.0003_task_due_date    ← ещё не применена

Что НЕ надо делать

# ❌ Не удаляй файлы миграций вручную
# ❌ Не редактируй применённые миграции
# ❌ Не называй поля зарезервированными словами SQL

squashmigrations — объединение миграций

# Объединить миграции 0001-0010 в одну
python manage.py squashmigrations tasks 0001 0010

Полезно когда накопилось много миграций. После сквоша старые файлы можно удалить (когда все среды обновлены).

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

settings.py: настройки Django

settings.py — центральный конфигурационный файл Django-проекта.

📅 30.06.2026 👁️ 315
📝

CSRF-защита в Django

CSRF (Cross-Site Request Forgery) — атака, при которой злоумышленник заставляет браузер пользователя отправить запрос от...

📅 30.06.2026 👁️ 294
📝

Сервер разработки Django

Встроенный сервер Django удобен для локальной разработки: он запускает проект и автоматически перезагружает код при...

📅 30.06.2026 👁️ 288
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

Django RequestLab: от HTTP до безопасного продакшена Открыть программу курса