From 90aa9710a62729f74963be3bba680e8ed403b375 Mon Sep 17 00:00:00 2001 From: McMatts Date: Mon, 7 Jan 2019 12:40:47 +0000 Subject: [PATCH] Develop PostgreSQL migration scripts --- core/database/scripts/postgresql/db_00003.sql | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 core/database/scripts/postgresql/db_00003.sql diff --git a/core/database/scripts/postgresql/db_00003.sql b/core/database/scripts/postgresql/db_00003.sql new file mode 100644 index 00000000..56f205ab --- /dev/null +++ b/core/database/scripts/postgresql/db_00003.sql @@ -0,0 +1,36 @@ +/* Community Edition */ + +-- Space labels provide name/color grouping +DROP TABLE IF EXISTS dmz_space_label; +CREATE TABLE dmz_space_label ( + id bigserial NOT NULL, + c_refid VARCHAR(20) NOT NULL COLLATE ucs_basic, + c_orgid VARCHAR(20) NOT NULL COLLATE ucs_basic, + c_name VARCHAR(50) NOT NULL DEFAULT '', + c_color VARCHAR(10) NOT NULL DEFAULT '', + c_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + c_revised TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (c_refid) +); +CREATE INDEX idx_space_label_1 ON dmz_space_label (id); +CREATE INDEX idx_space_label_2 ON dmz_space_label (c_orgid); + +-- Space table upgrade to support labelling, icon and summary stats +ALTER TABLE dmz_space ADD COLUMN c_desc VARCHAR(200) NOT NULL DEFAULT ''; +ALTER TABLE dmz_space ADD COLUMN c_labelid VARCHAR(20) NOT NULL DEFAULT '' COLLATE ucs_basic; +ALTER TABLE dmz_space ADD COLUMN c_icon VARCHAR(20) NOT NULL DEFAULT ''; +ALTER TABLE dmz_space ADD COLUMN c_count_category INT NOT NULL DEFAULT 0; +ALTER TABLE dmz_space ADD COLUMN c_count_content INT NOT NULL DEFAULT 0; + +-- Org/tenant upgrade to support theming and custom logo +ALTER TABLE dmz_org ADD COLUMN c_theme VARCHAR(20) NOT NULL DEFAULT ''; +ALTER TABLE dmz_org ADD COLUMN c_logo BYTEA; + +-- Populate default values for new fields +UPDATE dmz_space s SET c_count_category=(SELECT COUNT(*) FROM dmz_category WHERE c_spaceid=s.c_refid); +UPDATE dmz_space s SET c_count_content=(SELECT COUNT(*) FROM dmz_doc WHERE c_spaceid=s.c_refid); + +-- BUGFIX: Remove zombie group membership records +DELETE FROM dmz_group_member WHERE c_userid NOT IN (SELECT c_userid FROM dmz_user_account); + +-- Deprecations