كان عليّ أيضًا حذف ملف تم تحميله بطريقة ما. لا يوجد لدينا مهمة التنظيف مفعلة لأن بعض الملفات تأتي من استيراد من برنامج منتديات مختلف ولم تتم الإشارة إليها بعد في المشاركات المستوردة بشكل صحيح. لذلك، احتجت إلى إيجاد طريقة يدوية. ما يلي يعمل ولكنه ليس أنيقًا …
-
تأكد من أن التحميل المعني لم يعد موجودًا في الإصدار الحالي لأي مشاركة. بهذه الطريقة، ستعتبره Discourse يتيمًا ولن تسبب مشاكل عند حذفه.
-
استخدم إضافة مستكشف البيانات (Data Explorer plugin) أو طريقة أخرى للاستعلام عن قاعدة بيانات Discourse لسرد التحميلات اليتيمة، والعثور على التحميل المعني، وتدوين upload_id واسم الملف الخاص به. الاستعلام ذو الصلة:
SELECT uploads.id, uploads.user_id, uploads.created_at, uploads.url, uploads.filesize FROM uploads LEFT OUTER JOIN post_uploads ON uploads.id = post_uploads.upload_id WHERE post_uploads.post_id IS NULL ORDER BY created_at DESC LIMIT 100 -
في قاعدة البيانات أو باستخدام وحدة تحكم Rails لـ Discourse، احذف السجل المعني من جدول
uploadsبواسطة معرف التحميل الخاص به. هنا أستخدم وحدة تحكم Rails:Upload.where(id: 16384).first.delete -
احذف الملف المرتبط بما في ذلك جميع الإصدارات المحسّنة (إن وجدت، ينطبق على الصور) من نظام الملفات عبر SSH. لاحظ العلامة النجمية المضافة قبل امتداد الملف لالتقاط الإصدارات المحسّنة أيضًا، والتي لها لاحقة هنا. بالطبع،
cd /path/to/discourse/shared/public/ find . -name 43adade7a4cc64426adb8232a56cb2c3b49fb7c9*.pdf -type f -delete