Files
Touchh/users/management/commands/sync_activity_log.py
2024-12-06 12:37:15 +09:00

30 lines
1.4 KiB
Python

from django.core.management.base import BaseCommand
from users.models import WordPressUserActivityLog
from users.models import LocalUserActivityLog
from asgiref.sync import sync_to_async
class Command(BaseCommand):
help = "Синхронизация данных из WordPress в локальную базу данных"
def handle(self, *args, **kwargs):
self.stdout.write("Начало синхронизации данных...")
try:
# Получаем данные из WordPress
wordpress_logs = WordPressUserActivityLog.objects.using('wordpress').all()
for log in wordpress_logs:
# Сохраняем данные в локальную базу
LocalUserActivityLog.objects.update_or_create(
id=log.id, # Используем уникальный идентификатор
defaults={
'user_id': log.user_id,
'activity_type': log.activity_type,
'timestamp': log.timestamp,
'additional_data': log.additional_data,
},
)
self.stdout.write(self.style.SUCCESS("Синхронизация завершена успешно!"))
except Exception as e:
self.stderr.write(self.style.ERROR(f"Ошибка синхронизации: {str(e)}"))