
سلام
در این مرحله می خواهیم به جنگو بگوییم که بر اساس مدلبندی ما جداول و فیلدهای مناسب را در دیتابیس ایجاد کند. برای این کار به فولدری که فایل manage.py در آن قرار دارد رفته و دستور زیر را در cmd اجرا می کنیم.
1 |
python manage.py makemigrations |
خروجی آن مشابه زیر می شود.
1 2 3 4 5 6 7 |
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 اجرا می کنیم.
1 |
python manage.py sqlmigrate boards 0001 |
گام بعدی این است که دستور مهاجرت را صادر کنیم.
1 |
python manage.py migrate |
خروجی آن مشابه زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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
بدون دیدگاه