diff --git a/netbox/extras/migrations/0107_convert_reports_to_scripts.py b/netbox/extras/migrations/0107_convert_reports_to_scripts.py new file mode 100644 index 000000000..ac3222dc7 --- /dev/null +++ b/netbox/extras/migrations/0107_convert_reports_to_scripts.py @@ -0,0 +1,31 @@ +from django.db import migrations + + +def convert_reportmodule_jobs(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + Job = apps.get_model('core', 'Job') + + # Convert all ReportModule jobs to ScriptModule jobs + if reportmodule_ct := ContentType.objects.filter(app_label='extras', model='reportmodule').first(): + scriptmodule_ct = ContentType.objects.get(app_label='extras', model='scriptmodule') + Job.objects.filter(object_type_id=reportmodule_ct.id).update(object_type_id=scriptmodule_ct.id) + + +class Migration(migrations.Migration): + + dependencies = [ + ('extras', '0106_bookmark_user_cascade_deletion'), + ] + + operations = [ + migrations.RunPython( + code=convert_reportmodule_jobs, + reverse_code=migrations.RunPython.noop + ), + migrations.DeleteModel( + name='Report', + ), + migrations.DeleteModel( + name='ReportModule', + ), + ] diff --git a/netbox/extras/migrations/0107_delete_report_delete_reportmodule.py b/netbox/extras/migrations/0107_delete_report_delete_reportmodule.py deleted file mode 100644 index 652e89cee..000000000 --- a/netbox/extras/migrations/0107_delete_report_delete_reportmodule.py +++ /dev/null @@ -1,34 +0,0 @@ -# Generated by Django 5.0.1 on 2024-01-26 22:22 - -from django.db import migrations - - -def migrate_report_jobs(apps, schema_editor): - ContentType = apps.get_model('contenttypes', 'ContentType') - Job = apps.get_model('core', 'Job') - - # Delete the new ContentType effected by the introduction of core.ConfigRevision - if ContentType.objects.filter(app_label='extras', model='reportmodule'): - report_content_type = ContentType.objects.get(app_label='extras', model='reportmodule') - script_content_type = ContentType.objects.get(app_label='extras', model='scriptmodule') - jobs = Job.objects.filter(object_type_id=report_content_type.id).update(object_type_id=script_content_type.id) - - -class Migration(migrations.Migration): - - dependencies = [ - ('extras', '0106_bookmark_user_cascade_deletion'), - ] - - operations = [ - migrations.RunPython( - code=migrate_report_jobs, - reverse_code=migrations.RunPython.noop - ), - migrations.DeleteModel( - name='Report', - ), - migrations.DeleteModel( - name='ReportModule', - ), - ]