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)}"))