0Pricing
Django Academy · Урок

Изменение модели и повторная миграция

Добавьте поле и внесите изменение в DB

«Изменение модели и повторная миграция» — бесплатный урок Django Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Models Evolve

Real apps change. When a feature needs a new column, you edit the model and let migrations carry the change to the database.

Step 1: Edit the Model

Start by adding the field in your model class. Here you give a Post a published flag with a sensible default.

class Post(models.Model):
    title = models.CharField(max_length=200)
    published = models.BooleanField(default=False)

Step 2: makemigrations

Run makemigrations. Django diffs the new model against the last one and writes a fresh migration for the added field.

python manage.py makemigrations

Step 3: migrate

Run migrate to apply the new file. The column now exists in the real table, ready to use.

python manage.py migrate

Defaults Fill Old Rows

Adding a non-nullable field to a populated table needs a value for existing rows. A default fills them in cleanly.

No Default? Django Asks

Without a default, makemigrations stops and prompts you to provide a one-off value for existing rows before continuing.

Each Change Is a New File

Django never edits old migrations. Every model change becomes a new numbered file stacked on top of the last.

Renaming a Field

Rename a field and Django may ask if you renamed rather than dropped-and-added. Answer yes to keep the column data.

Removing a Field

Delete a field from the model, then makemigrations writes a RemoveField step. Apply it and the column is gone for good.

Reversing a Migration

To undo, migrate back to an earlier number. Django runs the migrations in reverse to restore the previous schema.

python manage.py migrate blog 0001

Commit the Files

Always commit the new migration with your model edits. Teammates run migrate and get the same schema, no surprises.

Quick Check

You add a required field to a table that already has rows. What does Django need?

Recap

The loop is simple: edit the model, makemigrations, migrate, commit. Each change becomes a new file, so your history stays honest. ✅

Часто задаваемые вопросы

Урок «Изменение модели и повторная миграция» бесплатный?

Да — полный текст урока «Изменение модели и повторная миграция» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.

Чему я научусь в уроке «Изменение модели и повторная миграция»?

Добавьте поле и внесите изменение в DB Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Django Academy?

Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Изменение модели и повторная миграция»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Django Academy?

Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. makemigrations и migrate
  2. Чтение файла миграции
  3. Изменение модели и повторная миграция
  4. sqlmigrate и изучение SQL
← Назад к Django Academy