Skip to content

Commit

Permalink
Update the multi-dc scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
HeshanSudarshana committed Mar 31, 2024
1 parent e4e7dff commit a5ceb8b
Show file tree
Hide file tree
Showing 10 changed files with 5,649 additions and 1,534 deletions.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -300,10 +300,6 @@ IF EXISTS (SELECT NAME FROM SYSINDEXES WHERE NAME = 'REG_RESOURCE_PROPERTY_IND_B
DROP INDEX REG_RESOURCE_PROPERTY.REG_RESOURCE_PROPERTY_IND_BY_VERSION
CREATE INDEX REG_RESOURCE_PROPERTY_IND_BY_VERSION ON REG_RESOURCE_PROPERTY(REG_VERSION, REG_TENANT_ID);

IF EXISTS (SELECT NAME FROM SYSINDEXES WHERE NAME = 'REG_RESOURCE_PROPERTY_IND_BY_REG_PROP_ID')
DROP INDEX REG_RESOURCE_PROPERTY.REG_RESOURCE_PROPERTY_IND_BY_REG_PROP_ID
CREATE INDEX REG_RESOURCE_PROPERTY_IND_BY_REG_PROP_ID ON REG_RESOURCE_PROPERTY(REG_TENANT_ID, REG_PROPERTY_ID);

--CREATE TABLE REG_ASSOCIATION

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[REG_ASSOCIATION]') AND TYPE IN (N'U'))
Expand Down Expand Up @@ -349,6 +345,7 @@ CREATE TABLE UM_TENANT (
UM_ACTIVE BIT DEFAULT 0,
UM_CREATED_DATE DATETIME NOT NULL,
UM_USER_CONFIG VARBINARY(MAX),
UM_ORG_UUID VARCHAR(36) DEFAULT NULL,
PRIMARY KEY (UM_ID),
UNIQUE(UM_DOMAIN_NAME),
UNIQUE(UM_TENANT_UUID));
Expand All @@ -370,9 +367,12 @@ CREATE TABLE UM_USER (
UM_CHANGED_TIME DATETIME NOT NULL,
UM_TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (UM_ID, UM_TENANT_ID),
UNIQUE(UM_USER_ID, UM_TENANT_ID)
UNIQUE(UM_USER_ID),
UNIQUE(UM_USER_NAME, UM_TENANT_ID)
);

CREATE UNIQUE INDEX INDEX_UM_USERNAME_UM_TENANT_ID ON UM_USER(UM_USER_NAME, UM_TENANT_ID);

--CREATE TABLE UM_DOMAIN
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[dbo].[UM_DOMAIN]') AND TYPE IN (N'U'))
CREATE TABLE UM_DOMAIN(
Expand Down Expand Up @@ -619,7 +619,7 @@ CREATE TABLE UM_HYBRID_USER_ROLE(
-- create table UM_HYBRID_GROUP_ROLE
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[dbo].[UM_HYBRID_GROUP_ROLE]') AND TYPE IN (N'U'))
CREATE TABLE UM_HYBRID_GROUP_ROLE(
UM_ID INTEGER IDENTITY(1, 1) NOT NULL,
UM_ID INTEGER IDENTITY(1,1) NOT NULL,
UM_GROUP_NAME VARCHAR(255),
UM_ROLE_ID INTEGER NOT NULL,
UM_TENANT_ID INTEGER DEFAULT 0,
Expand Down Expand Up @@ -676,6 +676,120 @@ CREATE TABLE UM_UUID_DOMAIN_MAPPER (

CREATE INDEX UUID_DM_UID_TID ON UM_UUID_DOMAIN_MAPPER(UM_USER_ID, UM_TENANT_ID);

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[dbo].[UM_GROUP_UUID_DOMAIN_MAPPER]') AND TYPE IN (N'U'))
CREATE TABLE UM_GROUP_UUID_DOMAIN_MAPPER (
UM_ID INTEGER IDENTITY(1,1),
UM_GROUP_ID VARCHAR(255) NOT NULL,
UM_DOMAIN_ID INTEGER NOT NULL,
UM_TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY (UM_ID),
UNIQUE (UM_GROUP_ID),
FOREIGN KEY (UM_DOMAIN_ID, UM_TENANT_ID) REFERENCES UM_DOMAIN(UM_DOMAIN_ID, UM_TENANT_ID) ON DELETE CASCADE
);

CREATE INDEX GRP_UUID_DM_GRP_ID_TID ON UM_GROUP_UUID_DOMAIN_MAPPER(UM_GROUP_ID, UM_TENANT_ID);

-- ################################
-- ORGANIZATION MANAGEMENT TABLES
-- ################################

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[UM_ORG]') AND TYPE IN (N'U'))
CREATE TABLE UM_ORG (
UM_ID VARCHAR(36) NOT NULL,
UM_ORG_NAME VARCHAR(255) NOT NULL,
UM_ORG_DESCRIPTION VARCHAR(1024),
UM_CREATED_TIME DATETIME NOT NULL,
UM_LAST_MODIFIED DATETIME NOT NULL,
UM_STATUS VARCHAR(255) DEFAULT 'ACTIVE' NOT NULL,
UM_PARENT_ID VARCHAR(36),
UM_ORG_TYPE VARCHAR(100) NOT NULL,
PRIMARY KEY (UM_ID),
FOREIGN KEY (UM_PARENT_ID) REFERENCES UM_ORG(UM_ID)
);

IF NOT EXISTS (SELECT * FROM UM_ORG WHERE UM_ID = '10084a8d-113f-4211-a0d5-efe36b082211')
BEGIN
INSERT INTO UM_ORG (UM_ID, UM_ORG_NAME, UM_ORG_DESCRIPTION, UM_CREATED_TIME, UM_LAST_MODIFIED, UM_STATUS, UM_ORG_TYPE)
VALUES ('10084a8d-113f-4211-a0d5-efe36b082211', 'Super', 'This is the super organization.', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'ACTIVE', 'TENANT')
END;

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[UM_ORG_ATTRIBUTE]') AND TYPE IN (N'U'))
CREATE TABLE UM_ORG_ATTRIBUTE (
UM_ID INTEGER IDENTITY(1,1) NOT NULL,
UM_ORG_ID VARCHAR(36) NOT NULL,
UM_ATTRIBUTE_KEY VARCHAR(255) NOT NULL,
UM_ATTRIBUTE_VALUE VARCHAR(512),
PRIMARY KEY (UM_ID),
UNIQUE (UM_ORG_ID, UM_ATTRIBUTE_KEY),
FOREIGN KEY (UM_ORG_ID) REFERENCES UM_ORG(UM_ID) ON DELETE CASCADE
);

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[UM_ORG_ROLE]') AND TYPE IN (N'U'))
CREATE TABLE UM_ORG_ROLE (
UM_ROLE_ID VARCHAR(255) NOT NULL,
UM_ROLE_NAME VARCHAR(255) NOT NULL,
UM_ORG_ID VARCHAR(36) NOT NULL,
PRIMARY KEY(UM_ROLE_ID),
CONSTRAINT FK_UM_ORG_ROLE_UM_ORG FOREIGN KEY (UM_ORG_ID) REFERENCES UM_ORG (UM_ID) ON DELETE CASCADE
);

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[UM_ORG_PERMISSION]') AND TYPE IN (N'U'))
CREATE TABLE UM_ORG_PERMISSION(
UM_ID INTEGER IDENTITY(1,1) NOT NULL,
UM_RESOURCE_ID VARCHAR(255) NOT NULL,
UM_ACTION VARCHAR(255) NOT NULL,
UM_TENANT_ID INTEGER DEFAULT 0,
PRIMARY KEY(UM_ID)
);

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[UM_ORG_ROLE_USER]') AND TYPE IN (N'U'))
CREATE TABLE UM_ORG_ROLE_USER (
UM_ORG_ROLE_USER_ID INTEGER IDENTITY(1,1) NOT NULL,
UM_USER_ID VARCHAR(255) NOT NULL,
UM_ROLE_ID VARCHAR(255) NOT NULL,
CONSTRAINT FK_UM_ORG_ROLE_USER_UM_ORG_ROLE FOREIGN KEY (UM_ROLE_ID) REFERENCES UM_ORG_ROLE(UM_ROLE_ID) ON DELETE CASCADE,
PRIMARY KEY(UM_ORG_ROLE_USER_ID)
);

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[UM_ORG_ROLE_GROUP]') AND TYPE IN (N'U'))
CREATE TABLE UM_ORG_ROLE_GROUP(
UM_ORG_ROLE_GROUP_ID INTEGER IDENTITY(1,1) NOT NULL,
UM_GROUP_ID VARCHAR(255) NOT NULL,
UM_ROLE_ID VARCHAR(255) NOT NULL,
CONSTRAINT FK_UM_ORG_ROLE_GROUP_UM_ORG_ROLE FOREIGN KEY (UM_ROLE_ID) REFERENCES UM_ORG_ROLE(UM_ROLE_ID) ON DELETE CASCADE,
PRIMARY KEY(UM_ORG_ROLE_GROUP_ID)
);

IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[UM_ORG_ROLE_PERMISSION]') AND TYPE IN (N'U'))
CREATE TABLE UM_ORG_ROLE_PERMISSION(
UM_ORG_ROLE_PERMISSION_ID INTEGER IDENTITY(1,1) NOT NULL,
UM_PERMISSION_ID INTEGER NOT NULL,
UM_ROLE_ID VARCHAR(255) NOT NULL,
CONSTRAINT FK_UM_ORG_ROLE_PERMISSION_UM_ORG_ROLE FOREIGN KEY (UM_ROLE_ID) REFERENCES UM_ORG_ROLE(UM_ROLE_ID) ON DELETE CASCADE,
CONSTRAINT FK_UM_ORG_ROLE_PERMISSION_UM_ORG_PERMISSION FOREIGN KEY (UM_PERMISSION_ID) REFERENCES UM_ORG_PERMISSION(UM_ID) ON DELETE CASCADE,
PRIMARY KEY(UM_ORG_ROLE_PERMISSION_ID)
);

IF NOT EXISTS ( SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[UM_ORG_HIERARCHY]') AND TYPE IN (N'U'))
CREATE TABLE UM_ORG_HIERARCHY (
UM_PARENT_ID VARCHAR(36) NOT NULL,
UM_ID VARCHAR(36) NOT NULL,
DEPTH INTEGER,
PRIMARY KEY (UM_PARENT_ID, UM_ID),
FOREIGN KEY (UM_PARENT_ID) REFERENCES UM_ORG(UM_ID),
FOREIGN KEY (UM_ID) REFERENCES UM_ORG(UM_ID)
);

IF NOT EXISTS (SELECT * FROM UM_ORG_HIERARCHY WHERE UM_PARENT_ID = '10084a8d-113f-4211-a0d5-efe36b082211' AND UM_ID = '10084a8d-113f-4211-a0d5-efe36b082211')
BEGIN
INSERT INTO UM_ORG_HIERARCHY (UM_PARENT_ID, UM_ID, DEPTH)
VALUES ('10084a8d-113f-4211-a0d5-efe36b082211', '10084a8d-113f-4211-a0d5-efe36b082211', 0);
END;
GO
-- Trigger UM_ORG_HIERARCHY and UM_ORG delete by UM_ID on UM_ORG deletion by UM_ID --
CREATE TRIGGER UM_ORG_DELETE_TRIGGER ON UM_ORG INSTEAD OF DELETE AS BEGIN DELETE FROM UM_ORG_HIERARCHY WHERE UM_PARENT_ID IN (SELECT UM_ID FROM deleted) DELETE FROM UM_ORG_HIERARCHY WHERE UM_ID IN (SELECT UM_ID FROM deleted) DELETE FROM UM_ORG WHERE UM_PARENT_ID IN (SELECT UM_ID FROM deleted) DELETE FROM UM_ORG WHERE UM_ID IN (SELECT UM_ID FROM deleted) END;
GO

-- Set NOT FOR REPLICATION to TRUE for all IDENTITY columns start --

EXEC sp_msforeachtable @command1 = '
Expand Down

0 comments on commit a5ceb8b

Please sign in to comment.