migrations
This commit is contained in:
50
users/management/commands/import_user_activity_log.py
Normal file
50
users/management/commands/import_user_activity_log.py
Normal file
@@ -0,0 +1,50 @@
|
||||
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)}"))
|
||||
Reference in New Issue
Block a user