Preparación de una base de datos SUDOCU para entorno de capacitación

Estimada Comunidad

Se adjunta a continuación unas SQLs que les pueden servir de referencia para armar una base de datos de SUDOCU para usarla por ejemplo en un entorno de capacitación. Es decir, sin eliminar la configuración ya seteada de usuarios, perfiles, etc. Esto solo elimina todos los documentos creados y sus datos relacionados (eventos, relaciones, seguimientos, etc).

TRUNCATE sudocu.ultimos_eventos RESTART IDENTITY CASCADE;
TRUNCATE sudocu.eventos RESTART IDENTITY CASCADE;
ALTER SEQUENCE sudocu.eventos_id_seq RESTART WITH 1;
TRUNCATE sudocu.documentos_relaciones RESTART IDENTITY CASCADE;
ALTER SEQUENCE sudocu.documentos_relaciones_id_seq RESTART WITH 1;
TRUNCATE sudocu.documentos_personas RESTART IDENTITY CASCADE;
ALTER SEQUENCE sudocu.documentos_personas_id_seq RESTART WITH 1;
TRUNCATE sudocu.documentos_seguimientos RESTART IDENTITY CASCADE;
TRUNCATE sudocu.documentos_versiones RESTART IDENTITY CASCADE;
TRUNCATE sudocu.documentos RESTART IDENTITY CASCADE;
TRUNCATE sudocu.archivos RESTART IDENTITY CASCADE;
TRUNCATE sudocu.papelera RESTART IDENTITY CASCADE;

Por otro lado, las siguientes SQLs permiten borrar documentos anteriores a X fecha:

DELETE FROM sudocu.ultimos_eventos WHERE id_documento IN (select id from sudocu.documentos WHERE ts < '[fecha]');
DELETE FROM sudocu.eventos WHERE id_documento IN (select id from sudocu.documentos WHERE ts < '[fecha]');
DELETE FROM sudocu.documentos_relaciones WHERE id_documento IN (select id from sudocu.documentos WHERE ts < '[fecha]') OR id_documento_relacionado IN (select id from sudocu.documentos WHERE ts < '[fecha]');
DELETE FROM sudocu.documentos_personas WHERE id_documento IN (select id from sudocu.documentos WHERE ts < '[fecha]');
DELETE FROM sudocu.documentos_seguimientos WHERE id_documento IN (select id from sudocu.documentos WHERE ts < '[fecha]');
DELETE FROM sudocu.documentos_versiones WHERE id_original IN (select id from sudocu.documentos WHERE ts < '[fecha]');
DELETE FROM sudocu.archivos WHERE id IN (select documento from sudocu.documentos WHERE ts < '[fecha]');
DELETE FROM sudocu.archivos WHERE id::text IN (SELECT jsonb_array_elements_text(archivos_adjuntos) FROM sudocu.documentos WHERE ts < '[fecha]')
DELETE FROM sudocu.documentos WHERE id IN (select id from sudocu.documentos WHERE ts < '[fecha]');

Saludos Cordiales
Alejandro Corsaro