diff --git a/testrail_bot/control/migrations/0001_initial.py b/testrail_bot/control/migrations/0001_initial.py
index 774da4a..b8d4697 100644
--- a/testrail_bot/control/migrations/0001_initial.py
+++ b/testrail_bot/control/migrations/0001_initial.py
@@ -1,5 +1,7 @@
-# Generated by Django 3.0.7 on 2020-06-30 13:22
+# Generated by Django 4.2.6 on 2023-11-04 10:46
 
+import datetime
+import django.core.files.storage
 from django.db import migrations, models
 
 
@@ -12,13 +14,64 @@
 
     operations = [
         migrations.CreateModel(
-            name='TestRun',
+            name='ActionLog',
             fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('project_name', models.CharField(max_length=300)),
-                ('plan_name', models.CharField(max_length=300)),
-                ('run_name', models.CharField(max_length=300)),
-                ('filter_func', models.TextField()),
+                ('id', models.AutoField(
+                    auto_created=True,
+                    primary_key=True,
+                    serialize=False,
+                    verbose_name='ID')),
+                ('name', models.CharField(max_length=500)),
+                ('date', models.DateTimeField(null=True)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='TestRailReport',
+            fields=[
+                ('id', models.AutoField(
+                    auto_created=True,
+                    primary_key=True,
+                    serialize=False,
+                    verbose_name='ID')),
+                ('path', models.FileField(
+                    blank=True,
+                    max_length=500,
+                    null=True,
+                    storage=django.core.files.storage.FileSystemStorage(),
+                    upload_to='')),
+                ('report_name', models.CharField(max_length=300)),
+                ('finished', models.BooleanField(default=False)),
+                ('created_at', models.DateTimeField(auto_now_add=True)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='TestRailTestRun',
+            fields=[
+                ('id', models.AutoField(
+                    auto_created=True,
+                    primary_key=True,
+                    serialize=False,
+                    verbose_name='ID')),
+                ('project_name', models.CharField(
+                    default='Mirantis Cloud Platform',
+                    max_length=300)),
+                ('plan_name', models.CharField(
+                    default='[MCP2.0]OSCORE',
+                    max_length=300)),
+                ('run_name', models.CharField(
+                    blank=True,
+                    max_length=300)),
+                ('test_pattern', models.CharField(
+                    blank=True,
+                    max_length=300)),
+                ('run_id', models.CharField(max_length=300)),
+                ('created_by_id', models.IntegerField(default='109')),
+                ('filter_func', models.TextField(blank=True, null=True)),
+                ('ip_filter', models.BooleanField(default=True)),
+                ('uuid_filter', models.BooleanField(default=True)),
+                ('filter_last_traceback', models.BooleanField(default=False)),
+                ('timestamp', models.DateField(
+                    default=datetime.date.today())),
             ],
         ),
     ]
diff --git a/testrail_bot/control/migrations/0002_auto_20200701_0735.py b/testrail_bot/control/migrations/0002_auto_20200701_0735.py
deleted file mode 100644
index b1070b9..0000000
--- a/testrail_bot/control/migrations/0002_auto_20200701_0735.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-01 07:35
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='testrun',
-            name='ip_filter',
-            field=models.BooleanField(default=False),
-        ),
-        migrations.AddField(
-            model_name='testrun',
-            name='uuid_filter',
-            field=models.BooleanField(default=False),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0003_report.py b/testrail_bot/control/migrations/0003_report.py
deleted file mode 100644
index 55b5d7b..0000000
--- a/testrail_bot/control/migrations/0003_report.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-01 08:09
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0002_auto_20200701_0735'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Report',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('path', models.FileField(upload_to='')),
-                ('report_name', models.CharField(max_length=300)),
-                ('test_run', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='control.TestRun')),
-            ],
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0004_auto_20200701_1342.py b/testrail_bot/control/migrations/0004_auto_20200701_1342.py
deleted file mode 100644
index 5928c8e..0000000
--- a/testrail_bot/control/migrations/0004_auto_20200701_1342.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-01 13:42
-
-import django.core.files.storage
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0003_report'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='report',
-            name='path',
-            field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location='media/reports'), upload_to=''),
-        ),
-        migrations.AlterField(
-            model_name='testrun',
-            name='filter_func',
-            field=models.TextField(null=True),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0005_auto_20200701_1344.py b/testrail_bot/control/migrations/0005_auto_20200701_1344.py
deleted file mode 100644
index 46b38e8..0000000
--- a/testrail_bot/control/migrations/0005_auto_20200701_1344.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-01 13:44
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0004_auto_20200701_1342'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='testrun',
-            name='filter_func',
-            field=models.TextField(default='', null=True),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0006_auto_20200701_1347.py b/testrail_bot/control/migrations/0006_auto_20200701_1347.py
deleted file mode 100644
index 9e40f0e..0000000
--- a/testrail_bot/control/migrations/0006_auto_20200701_1347.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-01 13:47
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0005_auto_20200701_1344'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='testrun',
-            name='filter_func',
-            field=models.TextField(blank=True, null=True),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0007_auto_20200702_1416.py b/testrail_bot/control/migrations/0007_auto_20200702_1416.py
deleted file mode 100644
index 7940406..0000000
--- a/testrail_bot/control/migrations/0007_auto_20200702_1416.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-02 14:16
-
-import django.core.files.storage
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0006_auto_20200701_1347'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='report',
-            name='finished',
-            field=models.BooleanField(default=False),
-        ),
-        migrations.AlterField(
-            model_name='report',
-            name='path',
-            field=models.FileField(blank=True, null=True, storage=django.core.files.storage.FileSystemStorage(location='media/reports'), upload_to=''),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0008_testrun_created_by.py b/testrail_bot/control/migrations/0008_testrun_created_by.py
deleted file mode 100644
index eb0ec87..0000000
--- a/testrail_bot/control/migrations/0008_testrun_created_by.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-03 08:42
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0007_auto_20200702_1416'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='testrun',
-            name='created_by',
-            field=models.CharField(default='', max_length=300),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0009_testrun_filter_last_traceback.py b/testrail_bot/control/migrations/0009_testrun_filter_last_traceback.py
deleted file mode 100644
index 49aa60d..0000000
--- a/testrail_bot/control/migrations/0009_testrun_filter_last_traceback.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-03 11:48
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0008_testrun_created_by'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='testrun',
-            name='filter_last_traceback',
-            field=models.BooleanField(default=False),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0010_auto_20200709_0831.py b/testrail_bot/control/migrations/0010_auto_20200709_0831.py
deleted file mode 100644
index 826aac8..0000000
--- a/testrail_bot/control/migrations/0010_auto_20200709_0831.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-09 08:31
-
-import django.core.files.storage
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0009_testrun_filter_last_traceback'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='report',
-            name='path',
-            field=models.FileField(blank=True, null=True, storage=django.core.files.storage.FileSystemStorage(), upload_to=''),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0011_report_created_at.py b/testrail_bot/control/migrations/0011_report_created_at.py
deleted file mode 100644
index b6eba47..0000000
--- a/testrail_bot/control/migrations/0011_report_created_at.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-17 09:35
-
-import datetime
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0010_auto_20200709_0831'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='report',
-            name='created_at',
-            field=models.DateTimeField(default=datetime.datetime.now),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0012_auto_20200717_0936.py b/testrail_bot/control/migrations/0012_auto_20200717_0936.py
deleted file mode 100644
index 4241998..0000000
--- a/testrail_bot/control/migrations/0012_auto_20200717_0936.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-17 09:36
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0011_report_created_at'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='report',
-            name='created_at',
-            field=models.DateTimeField(auto_now_add=True),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0013_auto_20200721_1248.py b/testrail_bot/control/migrations/0013_auto_20200721_1248.py
deleted file mode 100644
index 19b5632..0000000
--- a/testrail_bot/control/migrations/0013_auto_20200721_1248.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-21 12:48
-
-import django.core.files.storage
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0012_auto_20200717_0936'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='report',
-            name='path',
-            field=models.FileField(blank=True, max_length=500, null=True, storage=django.core.files.storage.FileSystemStorage(), upload_to=''),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0014_auto_20200731_1626.py b/testrail_bot/control/migrations/0014_auto_20200731_1626.py
deleted file mode 100644
index cac1a33..0000000
--- a/testrail_bot/control/migrations/0014_auto_20200731_1626.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-31 16:26
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0013_auto_20200721_1248'),
-    ]
-
-    operations = [
-        migrations.RemoveField(
-            model_name='testrun',
-            name='created_by',
-        ),
-        migrations.AddField(
-            model_name='testrun',
-            name='created_by_id',
-            field=models.IntegerField(default=-1),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0015_auto_20200731_1818.py b/testrail_bot/control/migrations/0015_auto_20200731_1818.py
deleted file mode 100644
index aac64c0..0000000
--- a/testrail_bot/control/migrations/0015_auto_20200731_1818.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 3.0.7 on 2020-07-31 18:18
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0014_auto_20200731_1626'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='testrun',
-            name='created_by_id',
-            field=models.IntegerField(),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0016_auto_20200924_1021.py b/testrail_bot/control/migrations/0016_auto_20200924_1021.py
deleted file mode 100644
index 3fb3db0..0000000
--- a/testrail_bot/control/migrations/0016_auto_20200924_1021.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Generated by Django 3.0.7 on 2020-09-24 10:21
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0015_auto_20200731_1818'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='ActionLog',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('name', models.CharField(max_length=500)),
-                ('date', models.DateTimeField()),
-            ],
-        ),
-        migrations.RenameModel(
-            old_name='Report',
-            new_name='TestRailReport',
-        ),
-        migrations.RenameModel(
-            old_name='TestRun',
-            new_name='TestRailTestRun',
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0017_auto_20200925_1255.py b/testrail_bot/control/migrations/0017_auto_20200925_1255.py
deleted file mode 100644
index d2d77a7..0000000
--- a/testrail_bot/control/migrations/0017_auto_20200925_1255.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 3.0.7 on 2020-09-25 12:55
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0016_auto_20200924_1021'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='actionlog',
-            name='date',
-            field=models.DateTimeField(null=True),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0018_testrailtestrun_run_id.py b/testrail_bot/control/migrations/0018_testrailtestrun_run_id.py
deleted file mode 100644
index 53bedfe..0000000
--- a/testrail_bot/control/migrations/0018_testrailtestrun_run_id.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 3.0.7 on 2023-01-17 14:29
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0017_auto_20200925_1255'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='testrailtestrun',
-            name='run_id',
-            field=models.CharField(blank=True, max_length=300),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0019_testrailtestrun_timestamp_and_more.py b/testrail_bot/control/migrations/0019_testrailtestrun_timestamp_and_more.py
deleted file mode 100644
index 998d81d..0000000
--- a/testrail_bot/control/migrations/0019_testrailtestrun_timestamp_and_more.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 4.2.6 on 2023-10-06 11:34
-
-import datetime
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0018_testrailtestrun_run_id'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='testrailtestrun',
-            name='timestamp',
-            field=models.DateField(default=datetime.date.today()))
-    ]
diff --git a/testrail_bot/control/migrations/0020_auto_20231009_1423.py b/testrail_bot/control/migrations/0020_auto_20231009_1423.py
deleted file mode 100644
index e2dc295..0000000
--- a/testrail_bot/control/migrations/0020_auto_20231009_1423.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# Generated by Django 3.0.7 on 2023-10-09 14:23
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0019_testrailtestrun_timestamp_and_more'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='testrailtestrun',
-            name='test_pattern',
-            field=models.CharField(blank=True, max_length=300),
-        ),
-        migrations.AlterField(
-            model_name='testrailtestrun',
-            name='created_by_id',
-            field=models.IntegerField(default='109'),
-        ),
-        migrations.AlterField(
-            model_name='testrailtestrun',
-            name='ip_filter',
-            field=models.BooleanField(default=True),
-        ),
-        migrations.AlterField(
-            model_name='testrailtestrun',
-            name='plan_name',
-            field=models.CharField(default='[MCP2.0]OSCORE', max_length=300),
-        ),
-        migrations.AlterField(
-            model_name='testrailtestrun',
-            name='project_name',
-            field=models.CharField(default='Mirantis Cloud Platform', max_length=300),
-        ),
-        migrations.AlterField(
-            model_name='testrailtestrun',
-            name='run_id',
-            field=models.CharField(max_length=300),
-        ),
-        migrations.AlterField(
-            model_name='testrailtestrun',
-            name='run_name',
-            field=models.CharField(blank=True, max_length=300),
-        ),
-        migrations.AlterField(
-            model_name='testrailtestrun',
-            name='uuid_filter',
-            field=models.BooleanField(default=True),
-        ),
-    ]
diff --git a/testrail_bot/control/migrations/0021_remove_testrailreport_test_run.py b/testrail_bot/control/migrations/0021_remove_testrailreport_test_run.py
deleted file mode 100644
index 5dd1b5f..0000000
--- a/testrail_bot/control/migrations/0021_remove_testrailreport_test_run.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Generated by Django 4.2.6 on 2023-10-09 20:20
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('control', '0020_auto_20231009_1423'),
-    ]
-
-    operations = [
-        migrations.RemoveField(
-            model_name='testrailreport',
-            name='test_run',
-        ),
-    ]
