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

هل هناك طريقة للتراجع عن عملية تهجير البيانات migration في جانغو Django؟

Mohssen A Mohssen

السؤال

قمت بإنشاء ملفات لتهجير البيانات Migration وتمت عملية التهجير بالفعل، وبعد إتمام العملية بنجاح لاحظت وجود بعض الأخطاء الإملائية في الملفات وأردت التراجع عن علمية التهجير مرة أخرى.

كيف يمكنني التراجع عن آخر عملية تهجير قمت بها وإلغاء التغيرات التي تمت على قاعدة البيانات؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

أول خطوة هي استعراض التهجيرات السابقة بحيث أن الأمر التالي يستعرض أسماء التهجيرات:

./manage.py showmigrations my_app
  • يستعرض الأمر حالة التهجيرات السابقة

ثم إن افترضنا أن لديك تهجير جديد و تريد العودة لما قبله (مثال):

0010_previous_migration   # الهدف
0011_migration_to_revert  # للتخطي

ثم نقوم بأمر التهجير لاسم الملف الهدف، أو نستخدم الرقم وحده يكفي

./manage.py migrate my_app 0010_previous_migration 

./manage.py migrate my_app 0010 

حيث أن الشكل العام للأمر:

python manage.py migrate <APP_NAME> <MIGRATION_NUMBER_PREFIX>

ثم تأكد من إتمام المهمة بتغيير حالة التهجيرات

./manage.py showmigrations my_app
  • للتراجع عن جميع التهجيرات نمرر zero
./manage.py migrate my_app zero

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

على سبيل المثال ، إذا كانت آخر رحلتين لك هما: 

  • 0010_previous_migration

  • 0011_migration_to_revert

بعد ذلك :

./manage.py migrate my_app 0010_previous_migration 

لا تحتاج فعليًا إلى استخدام اسم الترحيل الكامل ، فالرقم كافٍ ، أي :

./manage.py migrate my_app 0010 

يمكنك بعد ذلك حذف الترحيل 0011_migration_to_revert.

يمكنك إظهار أسماء جميع الهجرات بالطريقة التالية :

./manage.py showmigrations my_app # my app هو اسم التطبيق الذي تريد العمل عليه

للتراجع عن جميع عمليات الترحيل :

./manage.py migrate my_app zero

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...