You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.4 KiB
2.4 KiB
Chat Management Commands
clear_chat_data
این management command برای پاک کردن دادههای چت طراحی شده است و دو حالت کاری دارد:
حالت پیشفرض (محافظت از رومهای کورس)
در این حالت:
- همه پیامها (ChatMessage) حذف میشوند
- همه وضعیتهای خواندن پیام (MessageReadStatus) حذف میشوند
- رومهایی که مربوط به کورس نیستند (course=null) حذف میشوند
- رومهایی که مربوط به کورس هستند حفظ میشوند اما پیامهایشان حذف میشود
- تعداد پیامهای خوانده نشده رومهای کورس صفر میشود
حالت حذف کامل
در این حالت همه دادههای چت شامل رومهای کورس نیز حذف میشوند.
استفاده
حالت پیشفرض (محافظت از رومهای کورس)
# با تأیید کاربر
python manage.py clear_chat_data
# بدون تأیید کاربر
python manage.py clear_chat_data --force
حذف کامل همه دادهها
# با تأیید کاربر
python manage.py clear_chat_data --all-rooms
# بدون تأیید کاربر
python manage.py clear_chat_data --all-rooms --force
پارامترها
--force: اجرای دستور بدون درخواست تأیید از کاربر--all-rooms: حذف همه رومها شامل رومهای مربوط به کورس
نکات مهم
- ایمنی: دستور در یک transaction اجرا میشود تا در صورت خطا، تغییرات rollback شوند
- گزارشدهی: دستور تعداد رکوردهای حذف شده را نمایش میدهد
- محافظت از دادههای کورس: در حالت پیشفرض، رومهای مربوط به کورس حفظ میشوند
- بازنشانی شمارنده: تعداد پیامهای خوانده نشده رومهای کورس به صفر تنظیم میشود
مثال خروجی
Found:
- 150 messages
- 75 read statuses
- 10 total rooms (3 course rooms, 7 non-course rooms)
✓ Deleted 75 MessageReadStatus records
✓ Deleted 150 ChatMessage records
✓ Deleted 7 non-course RoomMessage records
✓ Reset unread_messages_count for 3 course rooms
Chat data clearing completed successfully!