حذف المنشورات المحذوفة بشكل دائم دفعة واحدة؟

عزيزي الفريق،

من فضلكم ساعدوني في حل هذه المشكلة!

لدينا عدد كبير جدًا من المنشورات المحذوفة ونحتاج إلى حذفها نهائيًا ولكن بشكل جماعي!

3 إعجابات

الموضوع المحذوف هو بالضبط ما هو عليه، أي موضوع محذوف. لا يلزم اتخاذ أي إجراء إضافي، ولا يمكن للمشرفين فقط عرض هذه المواضيع. أنت تقوم بحذف موضوع محذوف بالفعل مباشرة.

إعجاب واحد (1)

لا أريد أن تظهر في قائمة المواضيع المحذوفة، بل أريد حذفها من قاعدة البيانات.

هل هناك أي أمر أو طريقة لحذفها؟

5 إعجابات

لم قمت بذلك من قبل، لكن هل هذا الموضوع مفيد:

إعجابَين (2)

غير مفيد :worried: الرجاء مساعدتي إذا تم العثور على أي شيء؟

إعجاب واحد (1)

ربما يساعدك هذا

إعجابَين (2)

image

هل الفئة ‘المنشورات المحذوفة’ غير معروضة؟

إعجاب واحد (1)

هل لديك تصنيف بعنوان URL deleted-posts؟ يبدو أن المشاركات في لقطة الشاشة الخاصة بك تنتمي على الأرجح إلى تصنيفات لها عناوين URL مختلفة.

image

إعجاب واحد (1)

إذا قمت بحذف الفئة حسب الفئة، فسيتم حذف جميع المشاركات التي ليست في ‘deleted-posts’!

لذا، هل يمكنك مساعدتي في حذف ‘deleted-posts’ من قاعدة البيانات؟

إعجابَين (2)

أنا أيضًا أحاول إيجاد طريقة للقيام بذلك. بعد بحث طويل هنا على Meta، وتجربة الكثير من المحاولات والفشل، أصبحت الآن مرتبكًا تمامًا بشأن الأمر كله.

هل يمكننا بالفعل حذف المنشورات المحذوفة نهائيًا من قاعدة البيانات؟ وكيف؟

إعجابَين (2)

إذا كان بإمكانك حذف فئة، فيمكنك حذف المنشورات المحذوفة.

أقوم الآن بإعادة بناء تطبيق الاختبار الخاص بي لتثبيت مستكشف البيانات

:slight_smile:

إعجاب واحد (1)

لست متأكدًا من كيفية القيام بذلك. كنت فقط أشير إلى أن الأمر الذي كتبته يبدو أنه يبحث عن تصنيف يحتوي على الرمز deleted-posts.

إعجاب واحد (1)

عند حذف فئة باستخدام مهمة Rake، يتم حذف جميع المنشورات (وليس المواضيع فقط) الموجودة بداخلها. ومع ذلك، يتم الحذف بشكل ناعم (soft delete) فقط.

لا زلت غير متأكد من كيفية إزالة المنشورات فعليًا من قاعدة البيانات. كما أنني غير متأكد من كيفية التخلص من الملفات المرفقة المرتبطة بمنشوراتي المحذوفة. كلا الأمرين يسببان لي صداعًا كبيرًا في الوقت الحالي.

إعجابَين (2)

أعتقد أن المرفقات سيتم تنظيفها بواسطة إحدى المهام اليومية، بشرط ألا تكون جزءًا من أحدث إصدار للمنشور. لذا، فإن تغيير المنشور المحذوف إلى “(حذفه المشرف)” أو ما شابه سيجعل المرفق جزءًا من سجل التعديلات، مما سيعزله (وبالتالي سيتم التقاطه في عملية تنظيف “إزالة العناصر المعزولة”).

لكنني مجرد أضع فرضيات، لذا قد يكون هذا غير صحيح. :slightly_smiling_face:

المصدر:

إعجاب واحد (1)

إذا قمت بتسجيل الدخول إلى PostgreSQL، فيمكنك حذفه من قاعدة البيانات.

أنا أراجع مهام rake للحذف الحالية وأحاول فهم كيفية عملها. ربما يمكن للأشخاص الذين أنشأوا مهمة الحذف الحالية تنفيذ شيء ما يسمح لنا بحذف المنشورات المحذوفة.

3 إعجابات

نعم، هذا صحيح.
للتخلص من مرفق، يجب عليك إزالة محتويات المشاركة ثم حذف المشاركة.

إعجابَين (2)

إذا كان لديك أي أمر أو شيء مفيد وسريع، فيرجى مشاركته معي!

إعجاب واحد (1)

شكرًا لك يا ريتشارد و@JammyDodger!

مشكلتي الوحيدة هي أنني أملك 20,000 منشور يجب تطبيق ذلك عليها. هل تعرف أي اختصارات؟

إعجابَين (2)

أخشى أنني في بداية رحلتي مع منصة Discourse، لذا أفتقر إلى الخبرة اللازمة لذلك. :slightly_smiling_face:

هل من الممكن تعديل هذا لاستهداف المنشورات المحذوفة بدلاً من منشورات المستخدم لتحقيق نتيجة مماثلة؟

إعجاب واحد (1)

Post.with_deleted.where('deleted_at is not null').update_all(raw: 'تم حذف هذا المنشور', cooked: 'تم حذف هذا المنشور')

6 إعجابات