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

51 lines
2.3 KiB
Python

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