اذهب إلى المحتوى

السؤال

نشر

لدي العديد من ملفات التهجير Migration Files وأريد أن أقوم بتشغيل ملف معين منهم، وليس كل الملفات.

كيف أقوم بهذا الأمر، هل يجب أن أقوم بنقل باقي الملفات خارج المشروع مؤقتًا ثم أقوم بتهجير البيانات؟ أم أن هناك طريقة أخرى أفضل؟

Recommended Posts

  • 1
نشر

يمكنك إخبار Django بالانتقال إلى هجرة معينة عن طريق

./manage.py migrate myapp 0005_migration_to_run

لكن Django سيعمل على تشغيل كل عملية migration تصل إلى (أو تعود إلى) migration  الذي اخترته.

يمكنك محاولة التظاهر بالهجرة من قبل بالاتي

./manage.py migrate --fake myapp 0004_previous_migration #ملف التهجير السابق
./manage.py migrate myapp 0005_migration_to_run #ملف التهجير المراد تشغيله

 

  • 1
نشر

إستخدام نظام Migrations في Django يوجد له نظامين " النظام الفعلي / النظام الوهمي " :

النظام الفعلي / الرئيسي يمكن إستخدامه عن طريق ذلك السطر في موجة الأوامر في حال أردت تتبع التغييرات في المشروع بالكامل

python manage.py makemigrations 

أو من خلال ذلك السطر في حال الرغبه في تتبع التغييرات في تطبيق محدد بالمشروع مع إستبدال your_app_label بإسم التطبيق فقط

python manage.py makemigrations your_app_label

أما في حالة تطبيق التغييرات فيمكن إضافة --fake بعد السطر python manage.py migrate الذي يتم استخدامه في تطبيق التغييرات في كامل المشروع بالنظام الفعلي

python manage.py migrate --fake

أما في حال الرغبه في تطبيق التغييرات بشكل وهمي على تطبيق محدد داخل المشروع يتم استخدام ذلك السطر مع إستبدال app بإسم التطبيق المراد تطبييق التغييرات عليه داخل المشروع

python manage.py migrate --fake app

أما في حال أردت تطبيق تغييرات بشكل عام لتطبيق محدد و لكن داخل ملف تريد انشاؤه يدوياً للتطبيق به يمكن ذلك عن طريق السطر التالي مع إستبدال myapp بإسم التطبيق و migration_name_file بإسم الملف الخارجي المراد التطبيق به التغييرات 

python manage.py migrate myapp migration_name_file

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...