مهاجرت مدل‌ها یا همان Migration the Models

جنگو

سلام

در این مرحله می خواهیم به جنگو بگوییم که بر اساس مدل‌بندی ما جداول و فیلدهای مناسب را در دیتابیس ایجاد کند. برای این کار به فولدری که فایل manage.py در آن قرار دارد رفته و دستور زیر را در cmd اجرا می کنیم.

python manage.py makemigrations

خروجی آن مشابه زیر می شود.

Migrations for 'boards':
  boards/migrations/0001_initial.py
    - Create model Board
    - Create model Post
    - Create model Topic
    - Add field topic to post
    - Add field updated_by to post

با این دستور یک فایل با نام init__.py__ در مسیر boards/migrations ایجاد می شود. این فایل مشخص می کند که وضعیت جاری مدل‌بندیِ برنامه در چه وضعی قرار دارد. در مرحلۀ بعدی، جنگو برای ساخت جدول و ستون‌های آن، از این فایل استفاده می کند. برای اجرای دستورات SQL در دیتابیس، دستور زیر را در cmd اجرا می کنیم.

python manage.py sqlmigrate boards 0001

گام بعدی این است که دستور مهاجرت را صادر کنیم.

python manage.py migrate

خروجی آن مشابه زیر می شود.

Operations to perform:
  Apply all migrations: admin, auth, boards, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying boards.0001_initial... OK
  Applying sessions.0001_initial... OK

به دلیل اینکه این اولین باری است که دستور مهاجرت را صادر می کنیم بنابراین جنگو تمام اپ‌هایی که از قبل در فایل INSTALLED_APPS قرار داشته را هم مهاجرت می دهد. و صرفا خط Applying boards.0001_initial… OK در خروجی قبلی مربوط به کاری است که در این مرحله انجام داده ایم.

ضمناً جنگو به صورت پیش فرض از دیتابیس SQLite استفاده می کند که برای مباحث آموزشی و برنامه‌های کوچک مناسب است. (نحوۀ استفاده از دیتابیس های بزرگ تر در ادامه عنوان خواهد شد.)

ترجمۀ اختصاصی توسط تمدن

 

مطلب بعدی: تجربه ای از کار با Models API

مطلب قبلی: مدل | Model

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جنگو
پیکربندی گواهینامۀ https

سلام حالا می خواهیم برنامۀ خودمان را با گواهینامۀ https امن کنیم. ساده ترین کار برای انجام آن Let’s Encrypt است. قبل از Let’s Encrypt هرگز تنظیمات https به این راحتی نبوده و مهمتر اینکه اینکار کاملاً رایگان است. آن ها راه حلی به نام certbot را ارائه داده اند …

جنگو
پیکربندی سرویس ایمیل

سلام یکی از بهتر سرویس دهنده های ایمیل Mailgun با قابلیت ۱۲ هزار ایمیل رایگان در ماه است. به صورت رایگان ثبت نام کنید. برای اینکار باید آن را با سرویس دهندۀ دامین خود تنظیم کنید که در این آموزش از tamadon.org استفاده شده است. حالا اولین رکورد DNS را …

جنگو
پیکربندی NGINX

سلام کار بعدی که قرار است انجام شود؛ تنظیمان Nginx به شکلی است که پاسخگویی و سرویس دهی مربوط به فایل های استاتیک را خود انجام دهد و سایر درخواست ها را به Gunicorn بفرستد. یک فایل پیکربندی با نام boards را درون /etc/nginx/sites-available/ و با محتوای زیر اضافه می …

هرگونه استفادۀ از این آموزش به صورت رایگان و با ارجاع به تمدن جایز است.