Done
Details
Assignee
Viacheslav KolesnykViacheslav KolesnykReporter
Kalibek TurgumbayevKalibek TurgumbayevPriority
P2Story Points
5Sprint
NoneDevelopment Team
SpitfireFix versions
Release
Sunflower (R1 2025)TestRail: Cases
Open TestRail: CasesTestRail: Runs
Open TestRail: Runs
Details
Details
Assignee
Viacheslav Kolesnyk
Viacheslav KolesnykReporter
Kalibek Turgumbayev
Kalibek TurgumbayevPriority
Story Points
5
Sprint
None
Development Team
Spitfire
Fix versions
Release
Sunflower (R1 2025)
TestRail: Cases
Open TestRail: Cases
TestRail: Runs
Open TestRail: Runs
Created December 19, 2024 at 10:10 AM
Updated March 14, 2025 at 3:49 AM
Resolved March 5, 2025 at 4:33 PM
Create a scheduled nightly job to clean up the records that exceed the retention period.
Acceptance Criteria:
The job execution should be skipped if the configuration for the retention period is 0 (indefinite period)
The job is applied to all entity types (including MARC)
Use folio timer api to schedule a job(see mod-entities-links for reference). Use cron format so jobs runs at night
-- main audit table CREATE TABLE instance_audit( event_id uuid primary key, event_date timestamp not null, entity_id uuid not null, ---other fields omitted ) PARTITION BY HASH(entity_id); -- main partitions CREATE TABLE instance_audit_p0 PARTITION OF instance_audit FOR VALUES WITH (MODULUS 8, REMAINDER 0) PARTITION BY RANGE(event_date); CREATE TABLE instance_audit_p1 PARTITION OF instance_audit FOR VALUES WITH (MODULUS 8, REMAINDER 1) PARTITION BY RANGE(event_date); CREATE TABLE instance_audit_p2 PARTITION OF instance_audit FOR VALUES WITH (MODULUS 8, REMAINDER 2) PARTITION BY RANGE(event_date); CREATE TABLE instance_audit_p3 PARTITION OF instance_audit FOR VALUES WITH (MODULUS 8, REMAINDER 3) PARTITION BY RANGE(event_date); CREATE TABLE instance_audit_p4 PARTITION OF instance_audit FOR VALUES WITH (MODULUS 8, REMAINDER 4) PARTITION BY RANGE(event_date); CREATE TABLE instance_audit_p5 PARTITION OF instance_audit FOR VALUES WITH (MODULUS 8, REMAINDER 5) PARTITION BY RANGE(event_date); CREATE TABLE instance_audit_p6 PARTITION OF instance_audit FOR VALUES WITH (MODULUS 8, REMAINDER 6) PARTITION BY RANGE(event_date); CREATE TABLE instance_audit_p7 PARTITION OF instance_audit FOR VALUES WITH (MODULUS 8, REMAINDER 7) PARTITION BY RANGE(event_date); -- sub-partitions CREATE TABLE instance_audit_p0_2025_q1 PARTITION OF instance_audit_p0 FOR VALUES FROM ('2024-01-01') TO ('2025-03-31'); CREATE TABLE instance_audit_p0_2025_q2 PARTITION OF instance_audit_p0 FOR VALUES FROM ('2024-04-01') TO ('2025-06-30'); CREATE TABLE instance_audit_p0_2025_q3 PARTITION OF instance_audit_p0 FOR VALUES FROM ('2024-07-01') TO ('2025-09-30'); CREATE TABLE instance_audit_p0_2025_q4 PARTITION OF instance_audit_p0 FOR VALUES FROM ('2024-10-01') TO ('2025-12-31'); -- etc...
SELECT inhrelid::regclass::text AS child FROM pg_catalog.pg_inherits WHERE inhparent = 'diku_mod_audit.instance_audit_p0'::regclass;