from django.core.management.base import BaseCommand from users.models import UserActivityLog from asgiref.sync import sync_to_async from django.db import connections class Command(BaseCommand): help = "Импорт данных из таблицы wpts_user_activity_log в локальную базу" def handle(self, *args, **kwargs): self.stdout.write("Начало импорта данных...") try: # Подключение к основной базе данных (wordpress) with connections['wordpress'].cursor() as cursor: cursor.execute("SELECT * FROM wpts_user_activity_log") rows = cursor.fetchall() # Сохранение данных в локальной базе for row in rows: UserActivityLog.objects.update_or_create( id=row[0], # Используем поле id как уникальный ключ defaults={ 'user_id': row[1], 'ip': row[2], 'created': row[3], 'timestamp': row[4], 'date_time': row[5], 'referred': row[6], 'agent': row[7], 'platform': row[8], 'version': row[9], 'model': row[10], 'device': row[11], 'UAString': row[12], 'location': row[13], 'page_id': row[14], 'url_parameters': row[15], 'page_title': row[16], 'type': row[17], 'last_counter': row[18], 'hits': row[19], 'honeypot': row[20], 'reply': row[21], 'page_url': row[22], } ) self.stdout.write(self.style.SUCCESS("Импорт завершён успешно!")) except Exception as e: self.stderr.write(self.style.ERROR(f"Ошибка импорта: {str(e)}"))