diff --git a/.gitignore b/.gitignore index 3ed1c2d5..f40283c0 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ __pycache__/ # Local docker-compose overlay (e.g. to mount/install a private app bundle) /docker-compose.override.yml +/Makefile diff --git a/packages/serveradmin/serveradmin/querylog/migrations/0002_on_delete_cascade.py b/packages/serveradmin/serveradmin/querylog/migrations/0002_on_delete_cascade.py new file mode 100644 index 00000000..062df6ba --- /dev/null +++ b/packages/serveradmin/serveradmin/querylog/migrations/0002_on_delete_cascade.py @@ -0,0 +1,42 @@ +# Generated by Django 5.2.17 on 2026-10-09 07:29 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('apps', '0004_application_last_login'), + ('querylog', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterField( + model_name='querylog', + name='application', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='query_logs', to='apps.application'), + ), + migrations.AlterField( + model_name='querylog', + name='rule', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='logs', to='querylog.queryloggingrule'), + ), + migrations.AlterField( + model_name='querylog', + name='user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='query_logs', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='queryloggingrule', + name='application', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='query_logging_rules', to='apps.application'), + ), + migrations.AlterField( + model_name='queryloggingrule', + name='user', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='query_logging_rules', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/packages/serveradmin/serveradmin/querylog/models.py b/packages/serveradmin/serveradmin/querylog/models.py index a77ce73e..8fca5d28 100644 --- a/packages/serveradmin/serveradmin/querylog/models.py +++ b/packages/serveradmin/serveradmin/querylog/models.py @@ -69,11 +69,11 @@ class QueryLoggingRule(models.Model): """ application = models.ForeignKey( - Application, null=True, blank=True, on_delete=models.SET_NULL, + Application, null=True, blank=True, on_delete=models.CASCADE, related_name='query_logging_rules', ) user = models.ForeignKey( - User, null=True, blank=True, on_delete=models.SET_NULL, + User, null=True, blank=True, on_delete=models.CASCADE, related_name='query_logging_rules', ) is_active = models.BooleanField( @@ -230,15 +230,15 @@ class Source(models.TextChoices): SERVERSHELL = 'servershell', 'Servershell' rule = models.ForeignKey( - QueryLoggingRule, null=True, on_delete=models.SET_NULL, + QueryLoggingRule, null=True, on_delete=models.CASCADE, related_name='logs', ) application = models.ForeignKey( - Application, null=True, on_delete=models.SET_NULL, + Application, null=True, on_delete=models.CASCADE, related_name='query_logs', ) user = models.ForeignKey( - User, null=True, on_delete=models.SET_NULL, + User, null=True, on_delete=models.CASCADE, related_name='query_logs', ) source = models.CharField(max_length=16, choices=Source.choices)