File indexing completed on 2026-06-26 08:40:22
0001 from django.db import migrations, models
0002 import django.db.models.deletion
0003
0004
0005 class Migration(migrations.Migration):
0006
0007 dependencies = [
0008 ('pcs', '0019_restore_detector_version_composed_name'),
0009 ('monitor_app', '0035_add_tf_counts'),
0010 ]
0011
0012 operations = [
0013 migrations.CreateModel(
0014 name='EpicProdJob',
0015 fields=[
0016 ('pandaid', models.BigIntegerField(primary_key=True, serialize=False)),
0017 ('jeditaskid', models.BigIntegerField(blank=True, db_index=True, null=True)),
0018 ('seq_number', models.IntegerField(blank=True, db_index=True, null=True)),
0019 ('job_index', models.IntegerField(blank=True, db_index=True, null=True)),
0020 ('status', models.CharField(blank=True, db_index=True, default='', max_length=40)),
0021 ('phase', models.CharField(blank=True, db_index=True, default='', max_length=80)),
0022 ('failure_summary', models.TextField(blank=True, default='')),
0023 ('data', models.JSONField(blank=True, default=dict)),
0024 ('created_at', models.DateTimeField(auto_now_add=True)),
0025 ('updated_at', models.DateTimeField(auto_now=True)),
0026 ('last_refreshed_at', models.DateTimeField(blank=True, null=True)),
0027 ('prod_task', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='epicprod_jobs', to='pcs.prodtask')),
0028 ],
0029 options={
0030 'db_table': 'swf_epicprod_jobs',
0031 'ordering': ['-pandaid'],
0032 },
0033 ),
0034 migrations.CreateModel(
0035 name='EpicProdFile',
0036 fields=[
0037 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
0038 ('jeditaskid', models.BigIntegerField(blank=True, db_index=True, null=True)),
0039 ('pandaid', models.BigIntegerField(blank=True, db_index=True, null=True)),
0040 ('seq_number', models.IntegerField(blank=True, db_index=True, null=True)),
0041 ('job_index', models.IntegerField(blank=True, db_index=True, null=True)),
0042 ('role', models.CharField(choices=[('input', 'Input'), ('output', 'Output'), ('log', 'Log')], db_index=True, max_length=20)),
0043 ('stage', models.CharField(blank=True, db_index=True, default='', max_length=40)),
0044 ('scope', models.CharField(blank=True, db_index=True, default='', max_length=100)),
0045 ('dataset_name', models.CharField(blank=True, default='', max_length=1024)),
0046 ('did_name', models.CharField(blank=True, db_index=True, default='', max_length=1024)),
0047 ('lfn', models.CharField(blank=True, default='', max_length=512)),
0048 ('rse_expected', models.CharField(blank=True, default='', max_length=100)),
0049 ('status', models.CharField(choices=[('expected', 'Expected'), ('produced_local', 'Produced locally'), ('validated', 'Validated'), ('registered', 'Registered'), ('failed', 'Failed'), ('conflict', 'Conflict'), ('missing', 'Missing'), ('unknown', 'Unknown')], db_index=True, default='expected', max_length=40)),
0050 ('status_detail', models.TextField(blank=True, default='')),
0051 ('bytes', models.BigIntegerField(blank=True, null=True)),
0052 ('checksum', models.CharField(blank=True, default='', max_length=128)),
0053 ('source', models.CharField(blank=True, db_index=True, default='', max_length=80)),
0054 ('data', models.JSONField(blank=True, default=dict)),
0055 ('created_at', models.DateTimeField(auto_now_add=True)),
0056 ('updated_at', models.DateTimeField(auto_now=True)),
0057 ('job', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='files', to='monitor_app.epicprodjob')),
0058 ('prod_task', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='epicprod_files', to='pcs.prodtask')),
0059 ],
0060 options={
0061 'db_table': 'swf_epicprod_files',
0062 'ordering': ['jeditaskid', 'seq_number', 'role', 'stage', 'lfn'],
0063 },
0064 ),
0065 migrations.AddIndex(
0066 model_name='epicprodjob',
0067 index=models.Index(fields=['jeditaskid', 'seq_number'], name='swf_epicpro_jeditas_b940cb_idx'),
0068 ),
0069 migrations.AddIndex(
0070 model_name='epicprodjob',
0071 index=models.Index(fields=['prod_task', 'status'], name='swf_epicpro_prod_ta_95dd46_idx'),
0072 ),
0073 migrations.AddIndex(
0074 model_name='epicprodjob',
0075 index=models.Index(fields=['phase', 'status'], name='swf_epicpro_phase_340edd_idx'),
0076 ),
0077 migrations.AddIndex(
0078 model_name='epicprodfile',
0079 index=models.Index(fields=['prod_task', 'role', 'stage'], name='swf_epicpro_prod_ta_d2532e_idx'),
0080 ),
0081 migrations.AddIndex(
0082 model_name='epicprodfile',
0083 index=models.Index(fields=['jeditaskid', 'seq_number'], name='swf_epicpro_jeditas_59e5b7_idx'),
0084 ),
0085 migrations.AddIndex(
0086 model_name='epicprodfile',
0087 index=models.Index(fields=['pandaid', 'role', 'stage'], name='swf_epicpro_pandaid_5e6523_idx'),
0088 ),
0089 migrations.AddIndex(
0090 model_name='epicprodfile',
0091 index=models.Index(fields=['scope', 'did_name'], name='swf_epicpro_scope_a6bd57_idx'),
0092 ),
0093 migrations.AddIndex(
0094 model_name='epicprodfile',
0095 index=models.Index(fields=['status', 'stage'], name='swf_epicpro_status_f4300f_idx'),
0096 ),
0097 ]