fix: harden sync database contracts

This commit is contained in:
Ochenstarik 2026-09-29 12:23:17 +07:00
parent 991a068750
commit 94308e9e5c
2 changed files with 34 additions and 0 deletions

View file

@ -0,0 +1,16 @@
ALTER TABLE staff_sync_command_inbox
DROP CONSTRAINT IF EXISTS staff_sync_command_inbox_correlation_id_check,
DROP CONSTRAINT IF EXISTS staff_sync_command_inbox_causation_id_check;
ALTER TABLE staff_sync_command_inbox
ALTER COLUMN correlation_id TYPE VARCHAR(36),
ALTER COLUMN causation_id TYPE VARCHAR(36);
ALTER TABLE staff_sync_devices
DROP CONSTRAINT IF EXISTS staff_sync_devices_tenant_id_org_unit_id_fkey;
ALTER TABLE staff_sync_devices
ADD CONSTRAINT staff_sync_devices_tenant_id_org_unit_id_fkey
FOREIGN KEY (tenant_id, org_unit_id)
REFERENCES staff_org_units (tenant_id, id)
ON DELETE SET NULL;

View file

@ -0,0 +1,18 @@
ALTER TABLE staff_sync_devices
DROP CONSTRAINT IF EXISTS staff_sync_devices_tenant_id_org_unit_id_fkey;
ALTER TABLE staff_sync_devices
ADD CONSTRAINT staff_sync_devices_tenant_id_org_unit_id_fkey
FOREIGN KEY (tenant_id, org_unit_id)
REFERENCES staff_org_units (tenant_id, id)
ON DELETE RESTRICT;
ALTER TABLE staff_sync_command_inbox
ALTER COLUMN correlation_id TYPE VARCHAR(26),
ALTER COLUMN causation_id TYPE VARCHAR(26);
ALTER TABLE staff_sync_command_inbox
ADD CONSTRAINT staff_sync_command_inbox_correlation_id_check
CHECK (correlation_id ~ '^[0-9A-HJKMNP-TV-Z]{26}$'),
ADD CONSTRAINT staff_sync_command_inbox_causation_id_check
CHECK (causation_id IS NULL OR causation_id ~ '^[0-9A-HJKMNP-TV-Z]{26}$');