كيف أحذف كل شيء من منتداي وأترك المستخدمين فقط؟

هذه هي الطريقة الأسرع والأسهل، وبفارق كبير.
قم بتنزيل قائمة المستخدمين الخاصة بك كما اقترح @JammyDodger، من /admin/users/list/active، قم بتنزيل ملف CSV، وقم بتنظيفه للاحتفاظ بعناوين البريد الإلكتروني فقط، وقم بإجراء دعوة جماعية من واجهة المسؤول الخاصة بك من تثبيت Discourse جديد. سيحتاج المستخدمون إلى إنشاء حساب مرة أخرى.

إذا كنت ترغب في حذف جميع البيانات باستثناء بعض المستخدمين، فلا توجد طريقة سهلة للقيام بذلك ولا يمكنني التفكير إلا في أن المحاولة قد تؤدي بسهولة إلى منتدى معطل.

إذا كنت ترغب في تصدير معظم بيانات المستخدمين الخاصة بك (إعداداتهم الخاصة وأشياء أخرى)، فسيكون ذلك صعبًا أيضًا وسيتطلب إنشاء برنامج نصي بلغة Ruby on Rails. أيضًا، قد تواجه مشكلات لم أفكر فيها. إذا لم تكن متأكدًا من كيفية القيام بذلك، أقترح عليك الالتزام بالحل الأول أو النشر في Marketplace إذا كانت لديك ميزانية.

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

هذا صحيح. ولكن إذا كنت تريد أن تعيش بخطورة، يمكنك تجربة هذا:

./launcher enter app
discourse backup
rails c
Topic.where("user_id > 1").destroy_all
Upload.where("user_id > 1").destroy_all
exit
exit

أعتقد أن حذف المواضيع يجب أن يحذف المشاركات، ولكن يمكنك أيضًا إضافة

 Post.where("user_id > 0").destroy_all

سيترك > 1 المواضيع التي أنشأها المستخدم الأول. إذا كنت تريد حذفها أيضًا، فغيّرها إلى > 0، والتي ستترك المواضيع التي أنشأها @system. أعتقد أنك ستندم بشدة إذا حذفتها.

هذا يقوم بعمل نسخة احتياطية في حالة تدمير كل شيء.

هذه فكرة سيئة للغاية تقريبًا، ولكنها ما طلبته.

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

بالتأكيد! هناك فئة PostDestroyer لهذا الغرض، والتي تقوم بالكثير من التنظيف الإضافي الضروري.

@xebiyen يمكنك استخدام مهمة rake هذه لتدمير جميع المواضيع عبر جميع الفئات، ولكن مع ترك الفئات والمستخدمين دون تغيير:

$ ./bin/rake destroy:topics_all_categories
4 إعجابات

رائع، لم أكن أعرف مهمة “rake” هذه. هل ستزيل مواضيع “حول”، والتي ستكون تأثيرًا جانبيًا غير مرغوب فيه؟

لا، الطريقة التي يستخدمها تترك تلك الأمور كما هي افتراضيًا، ومهمة “rake” لا تغير هذا الإعداد الافتراضي:

:rainbow:

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

شكراً لتأكيدك هذا. أردت التأكد، لأن واحدة أو اثنتين من الطرق الموصى بها لأشياء أخرى المدرجة على Administrative Bulk Operations كان لها آثار جانبية غير مرغوب فيها في المرة الأخيرة التي استخدمتها فيها.

استخدمت إحداها لنقل المواضيع من فئة إلى أخرى، لكنها نقلت موضوع “حول” مع المواضيع العادية. ربما استخدمت نص Rails بدلاً من مهمة Rake، لست متأكداً. :thinking:

كما استخدمت طريقة Rake “نقل جميع المواضيع ذات علامة محددة إلى فئة واحدة”، والتي لم تقم بملء بعض الجداول المتعلقة بالعلامات بشكل صحيح في قاعدة البيانات.


تعديل: أوه، إنه يوم كعكتي! لو أن الكعكة كانت حقيقية… ولكن ربما هي كذلك؟

إعجابَين (2)

شكرًا! لقد نسيت أمر هذه الفئة ولم أكن أعرف عن مهمة الـ rake (أو لا أتذكر أنني نسيتها!)

إعجابَين (2)

ما هو الأمر الذي أستخدمه قبل هذا الأمر؟

@pfaffman @Canapin هل أمره @leonardo هو الحل الأفضل إذن؟

يمكنك المحاولة بنفسك، ولكن قم بعمل نسخة احتياطية أولاً.
انتقل إلى مجلد discourse الخاص بك في سطر الأوامر.
أدخل الحاوية باستخدام ./launcher enter app.
ثم اكتب rake destroy:topics_all_categories.

شاهدها أثناء العمل (مثيلي التجريبي بطيء جدًا):

4 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.