migrations
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Generated by Django 5.1.4 on 2024-12-06 04:26
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('hotels', '0002_initial'),
|
||||
('users', '0004_alter_user_options_alter_userconfirmation_options_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='hotel',
|
||||
options={'verbose_name': 'Отель', 'verbose_name_plural': 'Отели'},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='userhotel',
|
||||
options={'verbose_name': 'Пользователь отеля', 'verbose_name_plural': 'Пользователи отелей'},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hotel',
|
||||
name='api_key',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='API ключ'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hotel',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='Создан'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hotel',
|
||||
name='name',
|
||||
field=models.CharField(max_length=255, verbose_name='Название отеля'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hotel',
|
||||
name='pms_type',
|
||||
field=models.CharField(choices=[('bnovo', 'Bnovo'), ('travelline', 'Travel Line')], max_length=50, verbose_name='PMS система'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='hotel',
|
||||
name='public_key',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Публичный ключ'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userhotel',
|
||||
name='hotel',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hotels.hotel', verbose_name='Отель'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userhotel',
|
||||
name='user',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.user', verbose_name='Пользователь'),
|
||||
),
|
||||
]
|
||||
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)}"))
|
||||
@@ -0,0 +1,56 @@
|
||||
# Generated by Django 5.1.4 on 2024-12-06 03:59
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='LocalUserActivityLog',
|
||||
fields=[
|
||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
||||
('user_id', models.IntegerField()),
|
||||
('activity_type', models.CharField(max_length=255)),
|
||||
('timestamp', models.DateTimeField()),
|
||||
('additional_data', models.JSONField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='UserActivityLog',
|
||||
fields=[
|
||||
('id', models.BigAutoField(primary_key=True, serialize=False)),
|
||||
('user_id', models.BigIntegerField()),
|
||||
('ip', models.CharField(blank=True, max_length=100, null=True)),
|
||||
('created', models.DateTimeField(auto_now_add=True)),
|
||||
('timestamp', models.IntegerField()),
|
||||
('date_time', models.DateTimeField()),
|
||||
('referred', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('agent', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('platform', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('version', models.CharField(blank=True, max_length=50, null=True)),
|
||||
('model', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('device', models.CharField(blank=True, max_length=50, null=True)),
|
||||
('UAString', models.TextField(blank=True, null=True)),
|
||||
('location', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('page_id', models.BigIntegerField(blank=True, null=True)),
|
||||
('url_parameters', models.TextField(blank=True, null=True)),
|
||||
('page_title', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('type', models.CharField(blank=True, max_length=50, null=True)),
|
||||
('last_counter', models.IntegerField(blank=True, null=True)),
|
||||
('hits', models.IntegerField(blank=True, null=True)),
|
||||
('honeypot', models.BooleanField(blank=True, null=True)),
|
||||
('reply', models.BooleanField(blank=True, null=True)),
|
||||
('page_url', models.CharField(blank=True, max_length=255, null=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'User Activity Log',
|
||||
'verbose_name_plural': 'User Activity Logs',
|
||||
'db_table': 'user_activity_log',
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,44 @@
|
||||
# Generated by Django 5.1.4 on 2024-12-06 04:14
|
||||
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0002_localuseractivitylog_useractivitylog'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='useractivitylog',
|
||||
options={'verbose_name': 'Журнал активности', 'verbose_name_plural': 'Журналы активности'},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='confirmed',
|
||||
field=models.BooleanField(default=False, verbose_name='Подтвержден'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='role',
|
||||
field=models.CharField(choices=[('admin', 'Администратор системы'), ('hotel_user', 'Сотрудник отеля')], default='hotel_user', max_length=20, verbose_name='Роль'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userconfirmation',
|
||||
name='confirmation_code',
|
||||
field=models.UUIDField(default=uuid.uuid4, verbose_name='Код подтверждения'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userconfirmation',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='Создан: '),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='userconfirmation',
|
||||
name='user',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.user', verbose_name='Пользователь'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,66 @@
|
||||
# Generated by Django 5.1.4 on 2024-12-06 04:26
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0003_alter_useractivitylog_options_alter_user_confirmed_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='user',
|
||||
options={'verbose_name': 'Пользователь', 'verbose_name_plural': 'Пользователи'},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='userconfirmation',
|
||||
options={'verbose_name': 'Подтверждение пользователя', 'verbose_name_plural': 'Подтверждения пользователей'},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='chat_id',
|
||||
field=models.BigIntegerField(blank=True, null=True, unique=True, verbose_name='ID чата в телеграм'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='telegram_id',
|
||||
field=models.BigIntegerField(blank=True, null=True, unique=True, verbose_name='ID Телеграм'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='useractivitylog',
|
||||
name='agent',
|
||||
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Браузер'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='useractivitylog',
|
||||
name='created',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='Создан'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='useractivitylog',
|
||||
name='date_time',
|
||||
field=models.DateTimeField(verbose_name='Дата'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='useractivitylog',
|
||||
name='id',
|
||||
field=models.BigAutoField(primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='useractivitylog',
|
||||
name='ip',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='IP адрес'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='useractivitylog',
|
||||
name='timestamp',
|
||||
field=models.IntegerField(verbose_name='Время'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='useractivitylog',
|
||||
name='user_id',
|
||||
field=models.BigIntegerField(verbose_name='ID пользователя'),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user