Skip to content

Commit f8a52c2

Browse files
committed
Fixed sormas_schema
1 parent 6c138a5 commit f8a52c2

1 file changed

Lines changed: 0 additions & 141 deletions

File tree

sormas-backend/src/main/resources/sql/sormas_schema.sql

Lines changed: 0 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -15700,145 +15700,4 @@ ALTER TABLE customizablefieldvalue_history OWNER TO sormas_user;
1570015700

1570115701
INSERT INTO schema_version (version_number, comment) VALUES (619, '#13828 - Add history tables for customizable fields');
1570215702

15703-
15704-
-- #13828 - Customizable Fields
15705-
15706-
CREATE TABLE IF NOT EXISTS customizablefieldmetadata (
15707-
id bigint NOT NULL,
15708-
uuid character varying(36) NOT NULL UNIQUE,
15709-
changeDate timestamp without time zone NOT NULL DEFAULT NOW(),
15710-
creationDate timestamp without time zone NOT NULL DEFAULT NOW(),
15711-
deleted boolean NOT NULL DEFAULT false,
15712-
deletionreason varchar(255),
15713-
otherdeletionreason text,
15714-
15715-
-- Core field metadata
15716-
name character varying(512) NOT NULL,
15717-
description text,
15718-
fieldType character varying(50) NOT NULL, -- TEXT, DATE, COMBOBOX, YES_NO_UNKNOWN, CHECKBOX_LIST, RADIO_BUTTON_LIST
15719-
defaultValue text,
15720-
15721-
-- Constraints
15722-
mandatory boolean NOT NULL DEFAULT false,
15723-
readOnly boolean NOT NULL DEFAULT false,
15724-
active boolean NOT NULL DEFAULT true,
15725-
15726-
-- Context and UI placement
15727-
contextClass character varying(256) NOT NULL,
15728-
uiGroup character varying(256),
15729-
uiLinePosition integer,
15730-
uiLineWeight float4,
15731-
15732-
-- Complex JSON-serialized properties
15733-
visibilityRestrictions jsonb,
15734-
customProperties jsonb,
15735-
translations jsonb,
15736-
15737-
change_user_id bigint,
15738-
sys_period tstzrange NOT NULL,
15739-
15740-
PRIMARY KEY (id),
15741-
UNIQUE(name, contextClass)
15742-
);
15743-
15744-
CREATE INDEX idx_customizablefieldmetadata_uuid
15745-
ON customizablefieldmetadata (uuid);
15746-
CREATE INDEX idx_customizablefieldmetadata_contextClass
15747-
ON customizablefieldmetadata (contextClass);
15748-
CREATE INDEX idx_customizablefieldmetadata_uiGroup
15749-
ON customizablefieldmetadata (uiGroup);
15750-
CREATE INDEX idx_customizablefieldmetadata_active
15751-
ON customizablefieldmetadata (active);
15752-
CREATE INDEX idx_customizablefieldmetadata_deleted
15753-
ON customizablefieldmetadata (deleted);
15754-
15755-
ALTER TABLE customizablefieldmetadata OWNER TO sormas_user;
15756-
ALTER TABLE customizablefieldmetadata ADD CONSTRAINT fk_change_user_id FOREIGN KEY (change_user_id) REFERENCES users (id);
15757-
ALTER INDEX idx_customizablefieldmetadata_uuid OWNER TO sormas_user;
15758-
ALTER INDEX idx_customizablefieldmetadata_contextClass OWNER TO sormas_user;
15759-
ALTER INDEX idx_customizablefieldmetadata_uiGroup OWNER TO sormas_user;
15760-
ALTER INDEX idx_customizablefieldmetadata_active OWNER TO sormas_user;
15761-
ALTER INDEX idx_customizablefieldmetadata_deleted OWNER TO sormas_user;
15762-
15763-
-- CustomizableFieldMetadata history tables
15764-
CREATE TABLE customizablefieldmetadata_history (LIKE customizablefieldmetadata);
15765-
CREATE TRIGGER versioning_trigger
15766-
BEFORE INSERT OR UPDATE OR DELETE ON customizablefieldmetadata
15767-
FOR EACH ROW EXECUTE PROCEDURE versioning('sys_period', 'customizablefieldmetadata_history', true);
15768-
ALTER TABLE customizablefieldmetadata_history OWNER TO sormas_user;
15769-
15770-
DROP TRIGGER IF EXISTS delete_history_trigger_customizablefieldmetadata ON customizablefieldmetadata;
15771-
CREATE TRIGGER delete_history_trigger_customizablefieldmetadata
15772-
AFTER DELETE ON customizablefieldmetadata
15773-
FOR EACH ROW EXECUTE PROCEDURE delete_history_trigger('customizablefieldmetadata_history', 'id');
15774-
15775-
-- Create CustomizableFieldValue table
15776-
CREATE TABLE IF NOT EXISTS customizablefieldvalue (
15777-
id bigint NOT NULL,
15778-
uuid character varying(36) NOT NULL UNIQUE,
15779-
changeDate timestamp(3) NOT NULL DEFAULT NOW(),
15780-
creationDate timestamp(3) NOT NULL DEFAULT NOW(),
15781-
deleted boolean NOT NULL DEFAULT false,
15782-
deletionreason varchar(255),
15783-
otherdeletionreason text,
15784-
15785-
-- Fkey to metadata
15786-
customizablefieldmetadata_id bigint NOT NULL REFERENCES customizablefieldmetadata(id) ON DELETE CASCADE,
15787-
15788-
-- Generic entity reference
15789-
entityUuid character varying(36) NOT NULL,
15790-
contextClass character varying(256) NOT NULL,
15791-
15792-
-- Value storage (text for all types, type conversion happens in service)
15793-
value text,
15794-
15795-
change_user_id bigint,
15796-
sys_period tstzrange NOT NULL,
15797-
15798-
PRIMARY KEY (id),
15799-
UNIQUE(customizablefieldmetadata_id, entityUuid, contextClass)
15800-
);
15801-
15802-
CREATE INDEX idx_customizablefieldvalue_uuid
15803-
ON customizablefieldvalue (uuid);
15804-
CREATE INDEX idx_customizablefieldvalue_entityUuid
15805-
ON customizablefieldvalue (entityUuid);
15806-
CREATE INDEX idx_customizablefieldvalue_contextEntity
15807-
ON customizablefieldvalue (contextClass, entityUuid);
15808-
CREATE INDEX idx_customizablefieldvalue_fieldMetadata
15809-
ON customizablefieldvalue (customizablefieldmetadata_id);
15810-
CREATE INDEX idx_customizablefieldvalue_deleted
15811-
ON customizablefieldvalue (deleted);
15812-
15813-
ALTER TABLE customizablefieldvalue OWNER TO sormas_user;
15814-
15815-
ALTER TABLE customizablefieldvalue
15816-
ADD CONSTRAINT fk_customizablefieldvalue_metadata
15817-
FOREIGN KEY (customizablefieldmetadata_id)
15818-
REFERENCES customizablefieldmetadata(id)
15819-
ON DELETE CASCADE;
15820-
15821-
ALTER TABLE customizablefieldvalue ADD CONSTRAINT fk_change_user_id FOREIGN KEY (change_user_id) REFERENCES users (id);
15822-
15823-
ALTER INDEX idx_customizablefieldvalue_uuid OWNER TO sormas_user;
15824-
ALTER INDEX idx_customizablefieldvalue_entityUuid OWNER TO sormas_user;
15825-
ALTER INDEX idx_customizablefieldvalue_contextEntity OWNER TO sormas_user;
15826-
ALTER INDEX idx_customizablefieldvalue_fieldMetadata OWNER TO sormas_user;
15827-
ALTER INDEX idx_customizablefieldvalue_deleted OWNER TO sormas_user;
15828-
15829-
-- CustomizableFieldValue history tables
15830-
CREATE TABLE customizablefieldvalue_history (LIKE customizablefieldvalue);
15831-
CREATE TRIGGER versioning_trigger
15832-
BEFORE INSERT OR UPDATE OR DELETE ON customizablefieldvalue
15833-
FOR EACH ROW EXECUTE PROCEDURE versioning('sys_period', 'customizablefieldvalue_history', true);
15834-
15835-
DROP TRIGGER IF EXISTS delete_history_trigger_customizablefieldvalue ON customizablefieldvalue;
15836-
CREATE TRIGGER delete_history_trigger_customizablefieldvalue
15837-
AFTER DELETE ON customizablefieldvalue
15838-
FOR EACH ROW EXECUTE PROCEDURE delete_history_trigger('customizablefieldvalue_history', 'id');
15839-
15840-
ALTER TABLE customizablefieldvalue_history OWNER TO sormas_user;
15841-
15842-
INSERT INTO schema_version (version_number, comment) VALUES (619, '#13828 - Add history tables for customizable fields');
15843-
1584415703
-- *** Insert new sql commands BEFORE this line. Remember to always consider _history tables. ***

0 commit comments

Comments
 (0)