0Pricing
Django Academy · درس

تغيير Model وإعادة إجراء Migration

أضف حقلًا وأدخل التغيير في قاعدة البيانات

تغيير Model وإعادة إجراء Migration درس مجاني في 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. ✅

الأسئلة الشائعة

هل درس «تغيير Model وإعادة إجراء Migration» مجاني؟

نعم — نص درس «تغيير Model وإعادة إجراء Migration» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.

ماذا ستتعلم في «تغيير Model وإعادة إجراء Migration»؟

أضف حقلًا وأدخل التغيير في قاعدة البيانات تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟

لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تغيير Model وإعادة إجراء Migration»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟

نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏makemigrations مقابل migrate
  2. قراءة ملف Migration
  3. تغيير Model وإعادة إجراء Migration
  4. ‏sqlmigrate وفحص SQL
← العودة إلى Django Academy