مهاجرت مدلها یا همان 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
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!