📝 Django

Миграции Django

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

Миграция — файл с описанием изменений в схеме БД. 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)

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

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

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

🔗 Похожие

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

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

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 131
📝

AI-агенты: ReAct loop и автономные действия

Чат-бот отвечает на вопросы. Агент — действует: вызывает инструменты, получает реальные данные и использует их...

📅 30.06.2026 👁️ 97
📝

RAG: чат с документами через векторный поиск

RAG (Retrieval-Augmented Generation) — паттерн для работы с собственными документами. Вместо того чтобы переобучать модель,...

📅 30.06.2026 👁️ 88

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!