Amer Abdallah نشر 24 أغسطس 2021 أرسل تقرير نشر 24 أغسطس 2021 لقد أجريت عملية تهجير للبيانات وتمت إضافة جدول جديد وأريد التراجع عنه وحذف آخر عملية تهجير، بدون إنشاء ملف تهجير جديد. كيف يمكنني فعل ذلك؟ هل هناك أمر للتراجع عن آخر عملية تهجير للبيانات لأقوم لعد ذلك بحذف ملف التهجير فقط؟ 2 اقتباس
0 شرف الدين حفني نشر 24 أغسطس 2021 أرسل تقرير نشر 24 أغسطس 2021 يمكنك عمل ذلك عن طريق التهجير الى ملف التهجير السابق للاخير مثال اذا اعتبرنا وجود ملفان تهجير 0010_previous_migration 0011_migration_to_revert يمكنك إذا تنفيذ الامر التالى migrate my_app 0010_previous_migration ومن ثم بامكانك ان تمسح اخر ملف تهجير الغير مرغوب فيه 0011_migration_to_revert 1 اقتباس
1 عبدالله عبدالرحمن11 نشر 24 أغسطس 2021 أرسل تقرير نشر 24 أغسطس 2021 يمكنك التراجع عبر التهجير الى التهجير السابق على سبيل المثال ، إذا كان آخر تهجيرين لك هما: 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. إذا كنت تستخدم Django 1.8 ومافوق ، فيمكنك إظهار أسماء جميع عمليات التهجير باستخدام ./manage.py showmigrations my_app لعكس جميع عمليات التهجير لأحد التطبيقات ، يمكنك تنفيذ: ./manage.py migrate my_app zero لكن يجب الإشارة إلى أنه لا يمكن عكس جميع الهجرات . يحدث هذا إذا لم يكن لدى Django قاعدة للقيام بعملية العكس. بالنسبة لأغلب التغييرات التي أجريت عمليات التهجير بشكل تلقائي بإستخدام /manage.py makemigrations سيكون الإلغاء أو التراجع ممكنًا. مع ذلك فإن النصوص البرمجية المخصصة ستحتاج إلى كتابة الأمام والعكس. وايضاً لا تحذف ملف التهجير إلا بعد الرجوع. لأنه بدون ملف التهجير ، لم تكن قاعدة البيانات تعرف الأشياء التي يجب إزالتها. python manage.py showmigrations python manage.py migrate {app name from show migrations} {00##_migration file.py} إذا كنت تريد التراجع عن جميع عمليات التهجير ، فاستخدم zero كاسم التهجير: python manage.py migrate app_name_here zero احذف ملف التهجير. بمجرد أن يكون التهجير المطلوب في نماذجك ... python manage.py makemigrations python manage.py migrate 2 اقتباس
0 Ali Haidar Ahmad نشر 24 أغسطس 2021 أرسل تقرير نشر 24 أغسطس 2021 هنا حل آخر يغطي حالة ال use-case، عند استخدام RunPython. يمكنك الوصول إلى جدول ال ORM من خلال: from django.db.migrations.recorder import MigrationRecorder MigrationRecorder.Migration.objects.all() MigrationRecorder.Migration.objects.latest('id') MigrationRecorder.Migration.objects.latest('id').delete() وبالتالي يمكنك الاستعلام عن الجداول وحذف ماتريده. وبهذه الطريقة يمكنك التعديل بالتفصيل. تحتاج أيضاً في عمليات ترحيل RynPython، إلى الاهتمام بالبيانات التي تمت إضافتها أو تغييرها أو إزالتها. 1 اقتباس
السؤال
Amer Abdallah
لقد أجريت عملية تهجير للبيانات وتمت إضافة جدول جديد وأريد التراجع عنه وحذف آخر عملية تهجير، بدون إنشاء ملف تهجير جديد.
كيف يمكنني فعل ذلك؟ هل هناك أمر للتراجع عن آخر عملية تهجير للبيانات لأقوم لعد ذلك بحذف ملف التهجير فقط؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.