شكراً على ردك، ولكن مجرد إزالة الاستطلاعات ليس حلاً للسجلات المكررة. أفترض أن الاستيراد من phpbb3 في وقت مبكر كان غير صحيح وأنشأ تلك السجلات. إنها صالحة، ولكن لديها فقط معرفات UUID مكررة لأن المستورد الأصلي لم يتحقق من ذلك.
على أي حال، الحل لأي شخص يصادف هذه المشكلة هو القيام بما يلي:
- تغيير السجلات الإشكالية في جدول
post_custom_fieldsلإزاحتها. من الأفضل القيام بذلك بدلاً من الانتظار لبضع دقائق لإعادة البناء لرؤية خطأ آخر.
update post_custom_fields set name = 'polls' where name = 'polls_bak';
update post_custom_fields set name = 'polls-votes' where name = 'polls-votes_bak';
-
تشغيل إعادة بناء التطبيق، أو التحديث، أو أي شيء يحاول المستخدم القيام به.
-
الاتصال بالحاوية قيد التشغيل مباشرة بعد بناء كل شيء وبدء تشغيله.
-
تغيير الاستطلاعات مرة أخرى إلى التسمية الأصلية:
update post_custom_fields set name = 'polls'_bak' where name = 'polls';
update post_custom_fields set name = 'polls-votes_bak'' where name = 'polls-votes';
- تشغيل الترحيل الذي يسبب المشكلة يدوياً من داخل حاوية التطبيق، مع ملاحظة أن
VERSIONهو الرقم الموجود في اسم ملف الترحيل.
أولاً، قم بإلغاء تشغيل الترحيل، وهذا لن يفعل شيئاً لأن طريقة down لا تفعل شيئاً لقاعدة البيانات:
rake db:migrate:down VERSION=20180820080623
قم بتشغيل الترحيل وابحث عن الخطأ الأول:
rake db:migrate:up VERSION=20180820080623
- ابحث في الجدول باستخدام واجهة رسومية لقاعدة البيانات لتسهيل التحرير لمعرف UUID الذي يسبب المشكلة:
select from post_custom_fields where value like '%your_UUID%';
-
الآن الجزء الصعب. معرف UUID هو معرف إجابة/خيار الاستطلاع، لذا ما عليك فعله هو تغيير معرف UUID هذا في الصف
poll، على سبيل المثال من731ef6901e968fc3f4e785fcb9e9abe8إلى731ef6901e968fc3f4e785fcb9e9abe9. من غير المرجح جداً أن تجد واحداً آخر مثله في نظامك. ولكن بعد القيام بذلك، تحتاج أيضاً إلى العثور على المعرف المقابل فيpoll-votesوتغييره إلى المعرف الجديد الخاص بك. بهذه الطريقة، لن تفقد أي أصوات أو إجابات. -
قم بتشغيل الترحيل مرة أخرى وابحث عن الخطأ التالي:
rake db:migrate:up VERSION=20180820080623
- كرر هذه العملية حتى يكتمل الترحيل وتكون قد نقلت جميع الاستطلاعات إلى جداولك الجديدة.
أنا مستاء من عدم قيام أي شخص بالرد حتى لشرح ما هو معرف UUID هذا وما يشير إليه. أعرف أنه مفتوح المصدر وأعرف أنه مرت سنوات منذ أن تم الالتزام به، أنا لا أشتكي ولكن بعض المساعدة من الأشخاص الذين يقومون فعلياً بالالتزام في المستودع الرسمي ستكون موضع تقدير كبير.
تم حل المشكلة، لذا أيام سعيدة.
شكراً!