@ -0,0 +1,32 @@
|
|||||||
|
# Generated by Django 5.1.10 on 2025-06-10 14:17
|
||||||
|
|
||||||
|
import pgtrigger.compiler
|
||||||
|
import pgtrigger.migrations
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("authentik_tasks", "0001_initial"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
pgtrigger.migrations.AddTrigger(
|
||||||
|
model_name="task",
|
||||||
|
trigger=pgtrigger.compiler.Trigger(
|
||||||
|
name="update_aggregated_status",
|
||||||
|
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||||
|
constraint="CONSTRAINT",
|
||||||
|
declare="DECLARE aggregated_status TEXT; max_log_level TEXT;",
|
||||||
|
func="\n NEW.aggregated_status := CASE\n WHEN NEW.status != 'done' THEN NEW.status\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||||
|
hash="9f97b7e85dd6428402da79d4f748740f0a3ac88c",
|
||||||
|
operation="INSERT OR UPDATE",
|
||||||
|
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||||
|
table="authentik_tasks_task",
|
||||||
|
timing="DEFERRABLE INITIALLY IMMEDIATE",
|
||||||
|
when="AFTER",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -0,0 +1,36 @@
|
|||||||
|
# Generated by Django 5.1.10 on 2025-06-10 14:17
|
||||||
|
|
||||||
|
import pgtrigger.compiler
|
||||||
|
import pgtrigger.migrations
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("authentik_tasks", "0002_task_update_aggregated_status"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
pgtrigger.migrations.RemoveTrigger(
|
||||||
|
model_name="task",
|
||||||
|
name="update_aggregated_status",
|
||||||
|
),
|
||||||
|
pgtrigger.migrations.AddTrigger(
|
||||||
|
model_name="task",
|
||||||
|
trigger=pgtrigger.compiler.Trigger(
|
||||||
|
name="update_aggregated_status",
|
||||||
|
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||||
|
constraint="CONSTRAINT",
|
||||||
|
declare="DECLARE aggregated_status TEXT; max_log_level TEXT;",
|
||||||
|
func="\n NEW.aggregated_status := CASE\n WHEN NEW.state != 'done' THEN NEW.state\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||||
|
hash="7187c511fa7d22f8c34f2068c37b9bf2e51b9e40",
|
||||||
|
operation="INSERT OR UPDATE",
|
||||||
|
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||||
|
table="authentik_tasks_task",
|
||||||
|
timing="DEFERRABLE INITIALLY IMMEDIATE",
|
||||||
|
when="AFTER",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -0,0 +1,36 @@
|
|||||||
|
# Generated by Django 5.1.10 on 2025-06-10 14:19
|
||||||
|
|
||||||
|
import pgtrigger.compiler
|
||||||
|
import pgtrigger.migrations
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("authentik_tasks", "0003_remove_task_update_aggregated_status_and_more"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
pgtrigger.migrations.RemoveTrigger(
|
||||||
|
model_name="task",
|
||||||
|
name="update_aggregated_status",
|
||||||
|
),
|
||||||
|
pgtrigger.migrations.AddTrigger(
|
||||||
|
model_name="task",
|
||||||
|
trigger=pgtrigger.compiler.Trigger(
|
||||||
|
name="update_aggregated_status",
|
||||||
|
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||||
|
constraint="CONSTRAINT",
|
||||||
|
declare="DECLARE aggregated_status TEXT; max_log_level TEXT;",
|
||||||
|
func="\n NEW.aggregated_status := CASE\n WHEN NEW.state != 'done' THEN NEW.state\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->>'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->>'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->>'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||||
|
hash="6f01e43ff57b11081bff98b7e7b296ccaaa7cf7f",
|
||||||
|
operation="INSERT OR UPDATE",
|
||||||
|
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||||
|
table="authentik_tasks_task",
|
||||||
|
timing="DEFERRABLE INITIALLY IMMEDIATE",
|
||||||
|
when="AFTER",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -0,0 +1,35 @@
|
|||||||
|
# Generated by Django 5.1.10 on 2025-06-10 14:26
|
||||||
|
|
||||||
|
import pgtrigger.compiler
|
||||||
|
import pgtrigger.migrations
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("authentik_tasks", "0004_remove_task_update_aggregated_status_and_more"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
pgtrigger.migrations.RemoveTrigger(
|
||||||
|
model_name="task",
|
||||||
|
name="update_aggregated_status",
|
||||||
|
),
|
||||||
|
pgtrigger.migrations.AddTrigger(
|
||||||
|
model_name="task",
|
||||||
|
trigger=pgtrigger.compiler.Trigger(
|
||||||
|
name="update_aggregated_status",
|
||||||
|
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||||
|
constraint="CONSTRAINT",
|
||||||
|
func="\n NEW.aggregated_status := CASE\n WHEN NEW.state != 'done' THEN NEW.state\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->>'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->>'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->>'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||||
|
hash="328d7b7a131530f4ecc68f1cadb0146cf948fd03",
|
||||||
|
operation="INSERT OR UPDATE",
|
||||||
|
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||||
|
table="authentik_tasks_task",
|
||||||
|
timing="DEFERRABLE INITIALLY IMMEDIATE",
|
||||||
|
when="AFTER",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -0,0 +1,33 @@
|
|||||||
|
# Generated by Django 5.1.10 on 2025-06-10 14:33
|
||||||
|
|
||||||
|
import pgtrigger.compiler
|
||||||
|
import pgtrigger.migrations
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("authentik_tasks", "0005_remove_task_update_aggregated_status_and_more"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
pgtrigger.migrations.RemoveTrigger(
|
||||||
|
model_name="task",
|
||||||
|
name="update_aggregated_status",
|
||||||
|
),
|
||||||
|
pgtrigger.migrations.AddTrigger(
|
||||||
|
model_name="task",
|
||||||
|
trigger=pgtrigger.compiler.Trigger(
|
||||||
|
name="update_aggregated_status",
|
||||||
|
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||||
|
func="\n NEW.aggregated_status := CASE\n WHEN NEW.state != 'done' THEN NEW.state\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->>'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->>'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->>'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||||
|
hash="ebc09bc08c1624966c0c58a52f243fe25a842058",
|
||||||
|
operation="INSERT OR UPDATE",
|
||||||
|
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||||
|
table="authentik_tasks_task",
|
||||||
|
when="BEFORE",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
@ -89,17 +89,15 @@ class Task(SerializerModel):
|
|||||||
pgtrigger.Trigger(
|
pgtrigger.Trigger(
|
||||||
name="update_aggregated_status",
|
name="update_aggregated_status",
|
||||||
operation=pgtrigger.Insert | pgtrigger.Update,
|
operation=pgtrigger.Insert | pgtrigger.Update,
|
||||||
when=pgtrigger.After,
|
when=pgtrigger.Before,
|
||||||
timing=pgtrigger.Immediate,
|
|
||||||
declare=[("aggregated_status", "TEXT"), ("max_log_level", "TEXT")],
|
|
||||||
func=f"""
|
func=f"""
|
||||||
NEW.aggregated_status := CASE
|
NEW.aggregated_status := CASE
|
||||||
WHEN NEW.status != '{TaskState.DONE.value}' THEN NEW.status
|
WHEN NEW.state != '{TaskState.DONE.value}' THEN NEW.state
|
||||||
ELSE COALESCE((
|
ELSE COALESCE((
|
||||||
SELECT CASE
|
SELECT CASE
|
||||||
WHEN bool_or(msg->'log_level' = 'error') THEN 'error'
|
WHEN bool_or(msg->>'log_level' = 'error') THEN 'error'
|
||||||
WHEN bool_or(msg->'log_level' = 'warning') THEN 'warning'
|
WHEN bool_or(msg->>'log_level' = 'warning') THEN 'warning'
|
||||||
WHEN bool_or(msg->'log_level' = 'info') THEN 'info'
|
WHEN bool_or(msg->>'log_level' = 'info') THEN 'info'
|
||||||
ELSE '{TaskState.DONE.value}'
|
ELSE '{TaskState.DONE.value}'
|
||||||
END
|
END
|
||||||
FROM jsonb_array_elements(NEW._messages) AS msg
|
FROM jsonb_array_elements(NEW._messages) AS msg
|
||||||
|
Reference in New Issue
Block a user