# Generated by Django 4.2.5 on 2023-11-23 18:44

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('orm', '0020_models_bigautofield'),
    ]

    operations = [
        migrations.CreateModel(
            name='EventLogsImports',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255)),
                ('imported', models.BooleanField(default=False)),
                ('build_id', models.IntegerField(blank=True, null=True)),
            ],
        ),
    ]
