From 32fb410da40d7942199b182e41a7acfe91507569 Mon Sep 17 00:00:00 2001 From: madhawap Date: Thu, 4 Aug 2016 18:15:45 +0530 Subject: [PATCH] mysql db script related changes --- .../resources/dbscripts/cdm/certs/mssql.sql | 6 +- .../main/resources/dbscripts/cdm/mssql.sql | 571 +++++++++--------- 2 files changed, 301 insertions(+), 276 deletions(-) diff --git a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/src/main/resources/dbscripts/cdm/certs/mssql.sql b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/src/main/resources/dbscripts/cdm/certs/mssql.sql index 888ee030c87..6c377c68f6b 100644 --- a/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/src/main/resources/dbscripts/cdm/certs/mssql.sql +++ b/features/certificate-mgt/org.wso2.carbon.certificate.mgt.server.feature/src/main/resources/dbscripts/cdm/certs/mssql.sql @@ -1,7 +1,7 @@ -CREATE TABLE DM_DEVICE_CERTIFICATE ( - ID INTEGER IDENTITY NOT NULL, +CREATE TABLE IF NOT EXISTS DM_DEVICE_CERTIFICATE ( + ID INTEGER auto_increment NOT NULL, SERIAL_NUMBER VARCHAR(500) DEFAULT NULL, - CERTIFICATE VARBINARY(max) DEFAULT NULL, + CERTIFICATE BLOB DEFAULT NULL, TENANT_ID INTEGER DEFAULT 0, USERNAME VARCHAR(500) DEFAULT NULL, PRIMARY KEY (ID) diff --git a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql index 385ac2a135f..85cf0b078bb 100644 --- a/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql +++ b/features/device-mgt/org.wso2.carbon.device.mgt.server.feature/src/main/resources/dbscripts/cdm/mssql.sql @@ -1,183 +1,165 @@ -CREATE TABLE DM_DEVICE_TYPE ( - ID INTEGER IDENTITY NOT NULL, - NAME VARCHAR(300) DEFAULT NULL, - PROVIDER_TENANT_ID INTEGER DEFAULT 0, - SHARED_WITH_ALL_TENANTS INTEGER NOT NULL DEFAULT 0, - PRIMARY KEY (ID) -); -CREATE TABLE DM_GROUP ( - ID INTEGER IDENTITY NOT NULL, - GROUP_NAME VARCHAR(100) DEFAULT NULL, - DESCRIPTION VARCHAR(max) DEFAULT NULL, - DATE_OF_CREATE BIGINT DEFAULT NULL, - DATE_OF_LAST_UPDATE BIGINT DEFAULT NULL, - OWNER VARCHAR(45) DEFAULT NULL, - TENANT_ID INTEGER DEFAULT 0, - PRIMARY KEY (ID) -); -CREATE TABLE DM_DEVICE ( - ID INTEGER identity NOT NULL, - DESCRIPTION VARCHAR(max) DEFAULT NULL, +CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE ( + ID INT AUTO_INCREMENT NOT NULL, + NAME VARCHAR(300) DEFAULT NULL, + PROVIDER_TENANT_ID INTEGER DEFAULT 0, + SHARED_WITH_ALL_TENANTS BOOLEAN NOT NULL DEFAULT FALSE, + PRIMARY KEY (ID) +)ENGINE = InnoDB; +CREATE INDEX device_type_name ON DM_DEVICE_TYPE (NAME); + +CREATE TABLE IF NOT EXISTS DM_DEVICE ( + ID INTEGER AUTO_INCREMENT NOT NULL, + DESCRIPTION TEXT DEFAULT NULL, NAME VARCHAR(100) DEFAULT NULL, - DEVICE_TYPE_ID INTEGER DEFAULT NULL, + DEVICE_TYPE_ID INT(11) DEFAULT NULL, DEVICE_IDENTIFICATION VARCHAR(300) DEFAULT NULL, LAST_UPDATED_TIMESTAMP TIMESTAMP NOT NULL, TENANT_ID INTEGER DEFAULT 0, PRIMARY KEY (ID), - CONSTRAINT fk_DM_DEVICE_DM_DEVICE_TYPE2 FOREIGN KEY (DEVICE_TYPE_ID ) - REFERENCES DM_DEVICE_TYPE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); + CONSTRAINT fk_DM_DEVICE_DM_DEVICE_TYPE2 FOREIGN KEY (DEVICE_TYPE_ID) + REFERENCES DM_DEVICE_TYPE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT uk_DM_DEVICE UNIQUE (NAME, DEVICE_TYPE_ID, DEVICE_IDENTIFICATION, TENANT_ID) +)ENGINE = InnoDB; -CREATE TABLE DM_DEVICE_GROUP_MAP ( - ID INTEGER IDENTITY NOT NULL, - DEVICE_ID INTEGER DEFAULT NULL, - GROUP_ID INTEGER DEFAULT NULL, - TENANT_ID INTEGER DEFAULT 0, - PRIMARY KEY (ID), - CONSTRAINT fk_DM_DEVICE_GROUP_MAP_DM_DEVICE2 FOREIGN KEY (DEVICE_ID) - REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT fk_DM_DEVICE_GROUP_MAP_DM_GROUP2 FOREIGN KEY (GROUP_ID) - REFERENCES DM_GROUP (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); -CREATE TABLE DM_OPERATION ( - ID INTEGER IDENTITY NOT NULL, +CREATE TABLE IF NOT EXISTS DM_OPERATION ( + ID INTEGER AUTO_INCREMENT NOT NULL, TYPE VARCHAR(50) NOT NULL, - CREATED_TIMESTAMP DATETIME2(0) NOT NULL, - RECEIVED_TIMESTAMP DATETIME2(0) NULL, + CREATED_TIMESTAMP TIMESTAMP NOT NULL, + RECEIVED_TIMESTAMP TIMESTAMP NULL, OPERATION_CODE VARCHAR(1000) NOT NULL, PRIMARY KEY (ID) -); +)ENGINE = InnoDB; + -CREATE TABLE DM_CONFIG_OPERATION ( +CREATE TABLE IF NOT EXISTS DM_CONFIG_OPERATION ( OPERATION_ID INTEGER NOT NULL, - OPERATION_CONFIG VARBINARY(max) DEFAULT NULL, + OPERATION_CONFIG BLOB DEFAULT NULL, PRIMARY KEY (OPERATION_ID), - CONSTRAINT fk_dm_operation_config FOREIGN KEY (OPERATION_ID) REFERENCES + CONSTRAINT FK_DM_OPERATION_CONFIG FOREIGN KEY (OPERATION_ID) REFERENCES DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; -CREATE TABLE DM_COMMAND_OPERATION ( + +CREATE TABLE IF NOT EXISTS DM_COMMAND_OPERATION ( OPERATION_ID INTEGER NOT NULL, - ENABLED BIT NOT NULL DEFAULT 'FALSE', + ENABLED BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (OPERATION_ID), - CONSTRAINT fk_dm_operation_command FOREIGN KEY (OPERATION_ID) REFERENCES + CONSTRAINT FK_DM_OPERATION_COMMAND FOREIGN KEY (OPERATION_ID) REFERENCES DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; + -CREATE TABLE DM_POLICY_OPERATION ( +CREATE TABLE IF NOT EXISTS DM_POLICY_OPERATION ( OPERATION_ID INTEGER NOT NULL, ENABLED INTEGER NOT NULL DEFAULT 0, - OPERATION_DETAILS VARBINARY(max) DEFAULT NULL, + OPERATION_DETAILS BLOB DEFAULT NULL, PRIMARY KEY (OPERATION_ID), - CONSTRAINT fk_dm_operation_policy FOREIGN KEY (OPERATION_ID) REFERENCES + CONSTRAINT FK_DM_OPERATION_POLICY FOREIGN KEY (OPERATION_ID) REFERENCES DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; -CREATE TABLE DM_PROFILE_OPERATION ( + +CREATE TABLE IF NOT EXISTS DM_PROFILE_OPERATION ( OPERATION_ID INTEGER NOT NULL, ENABLED INTEGER NOT NULL DEFAULT 0, - OPERATION_DETAILS VARBINARY(max) DEFAULT NULL, + OPERATION_DETAILS BLOB DEFAULT NULL, PRIMARY KEY (OPERATION_ID), - CONSTRAINT fk_dm_operation_profile FOREIGN KEY (OPERATION_ID) REFERENCES + CONSTRAINT FK_DM_OPERATION_PROFILE FOREIGN KEY (OPERATION_ID) REFERENCES DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; + -CREATE TABLE DM_ENROLMENT ( - ID INTEGER IDENTITY NOT NULL, +CREATE TABLE IF NOT EXISTS DM_ENROLMENT ( + ID INTEGER AUTO_INCREMENT NOT NULL, DEVICE_ID INTEGER NOT NULL, OWNER VARCHAR(50) NOT NULL, OWNERSHIP VARCHAR(45) DEFAULT NULL, STATUS VARCHAR(50) NULL, - DATE_OF_ENROLMENT DATETIME2(0) DEFAULT NULL, - DATE_OF_LAST_UPDATE DATETIME2(0) DEFAULT NULL, - TENANT_ID INTEGER NOT NULL, + DATE_OF_ENROLMENT TIMESTAMP NULL DEFAULT NULL, + DATE_OF_LAST_UPDATE TIMESTAMP NULL DEFAULT NULL, + TENANT_ID INT NOT NULL, PRIMARY KEY (ID), - CONSTRAINT fk_dm_device_enrolment FOREIGN KEY (DEVICE_ID) REFERENCES - DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); + CONSTRAINT FK_DM_DEVICE_ENROLMENT FOREIGN KEY (DEVICE_ID) REFERENCES + DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT uk_dm_device_enrolment UNIQUE (DEVICE_ID, OWNER, OWNERSHIP, TENANT_ID) +)ENGINE = InnoDB; -CREATE TABLE DM_ENROLMENT_OP_MAPPING ( - ID INTEGER IDENTITY NOT NULL, + +CREATE TABLE IF NOT EXISTS DM_ENROLMENT_OP_MAPPING ( + ID INTEGER AUTO_INCREMENT NOT NULL, ENROLMENT_ID INTEGER NOT NULL, OPERATION_ID INTEGER NOT NULL, STATUS VARCHAR(50) NULL, - CREATED_TIMESTAMP INTEGER NOT NULL, - UPDATED_TIMESTAMP INTEGER NOT NULL, + CREATED_TIMESTAMP INT NOT NULL, + UPDATED_TIMESTAMP INT NOT NULL, PRIMARY KEY (ID), CONSTRAINT fk_dm_device_operation_mapping_device FOREIGN KEY (ENROLMENT_ID) REFERENCES DM_ENROLMENT (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT fk_dm_device_operation_mapping_operation FOREIGN KEY (OPERATION_ID) REFERENCES DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; + -CREATE TABLE DM_DEVICE_OPERATION_RESPONSE ( - ID INTEGER IDENTITY NOT NULL, +CREATE TABLE IF NOT EXISTS DM_DEVICE_OPERATION_RESPONSE ( + ID INTEGER AUTO_INCREMENT NOT NULL, ENROLMENT_ID INTEGER NOT NULL, OPERATION_ID INTEGER NOT NULL, - OPERATION_RESPONSE VARBINARY(max) DEFAULT NULL, - RECEIVED_TIMESTAMP DATETIME2(0) NULL, + OPERATION_RESPONSE BLOB DEFAULT NULL, + RECEIVED_TIMESTAMP TIMESTAMP NULL, PRIMARY KEY (ID), CONSTRAINT fk_dm_device_operation_response_enrollment FOREIGN KEY (ENROLMENT_ID) REFERENCES DM_ENROLMENT (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT fk_dm_device_operation_response_operation FOREIGN KEY (OPERATION_ID) REFERENCES DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; -- POLICY RELATED TABLES -- - - - -CREATE TABLE DM_PROFILE ( - ID INTEGER NOT NULL IDENTITY , +CREATE TABLE IF NOT EXISTS DM_PROFILE ( + ID INT NOT NULL AUTO_INCREMENT , PROFILE_NAME VARCHAR(45) NOT NULL , - TENANT_ID INTEGER NOT NULL , + TENANT_ID INT NOT NULL , DEVICE_TYPE VARCHAR(300) NOT NULL , - CREATED_TIME DATETIME2(0) NOT NULL , - UPDATED_TIME DATETIME2(0) NOT NULL , + CREATED_TIME DATETIME NOT NULL , + UPDATED_TIME DATETIME NOT NULL , PRIMARY KEY (ID) , CONSTRAINT DM_PROFILE_DEVICE_TYPE FOREIGN KEY (DEVICE_TYPE) - REFERENCES DM_DEVICE_TYPE (NAME ) + REFERENCES DM_DEVICE_TYPE (NAME) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; - - - -CREATE TABLE DM_POLICY ( - ID INTEGER NOT NULL IDENTITY , +CREATE TABLE IF NOT EXISTS DM_POLICY ( + ID INT(11) NOT NULL AUTO_INCREMENT , NAME VARCHAR(45) DEFAULT NULL , DESCRIPTION VARCHAR(1000) NULL, - TENANT_ID INTEGER NOT NULL , - PROFILE_ID INTEGER NOT NULL , + TENANT_ID INT(11) NOT NULL , + PROFILE_ID INT(11) NOT NULL , OWNERSHIP_TYPE VARCHAR(45) NULL, COMPLIANCE VARCHAR(100) NULL, - PRIORITY INTEGER NOT NULL, - ACTIVE INTEGER NOT NULL, - UPDATED INTEGER NULL, + PRIORITY INT NOT NULL, + ACTIVE INT(2) NOT NULL, + UPDATED INT(1) NULL, PRIMARY KEY (ID) , CONSTRAINT FK_DM_PROFILE_DM_POLICY FOREIGN KEY (PROFILE_ID ) REFERENCES DM_PROFILE (ID ) ON DELETE NO ACTION ON UPDATE NO ACTION -); - +)ENGINE = InnoDB; - -CREATE TABLE DM_DEVICE_POLICY ( - ID INTEGER NOT NULL IDENTITY , - DEVICE_ID INTEGER NOT NULL , - ENROLMENT_ID INTEGER NOT NULL, - DEVICE VARBINARY(max) NOT NULL, - POLICY_ID INTEGER NOT NULL , +CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY ( + ID INT(11) NOT NULL AUTO_INCREMENT , + DEVICE_ID INT(11) NOT NULL , + ENROLMENT_ID INT(11) NOT NULL, + DEVICE BLOB NOT NULL, + POLICY_ID INT(11) NOT NULL , PRIMARY KEY (ID) , CONSTRAINT FK_POLICY_DEVICE_POLICY FOREIGN KEY (POLICY_ID ) @@ -189,15 +171,13 @@ CREATE TABLE DM_DEVICE_POLICY ( REFERENCES DM_DEVICE (ID ) ON DELETE NO ACTION ON UPDATE NO ACTION -); - +)ENGINE = InnoDB; - -CREATE TABLE DM_DEVICE_TYPE_POLICY ( - ID INTEGER NOT NULL , +CREATE TABLE IF NOT EXISTS DM_DEVICE_TYPE_POLICY ( + ID INT(11) NOT NULL , DEVICE_TYPE VARCHAR(300) NOT NULL , - POLICY_ID INTEGER NOT NULL , + POLICY_ID INT(11) NOT NULL , PRIMARY KEY (ID) , CONSTRAINT FK_DEVICE_TYPE_POLICY FOREIGN KEY (POLICY_ID ) @@ -205,52 +185,45 @@ CREATE TABLE DM_DEVICE_TYPE_POLICY ( ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT FK_DEVICE_TYPE_POLICY_DEVICE_TYPE - FOREIGN KEY (DEVICE_TYPE) - REFERENCES DM_DEVICE_TYPE (NAME ) + FOREIGN KEY (DEVICE_TYPE ) + REFERENCES DM_DEVICE_TYPE (NAME) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; - - - -CREATE TABLE DM_PROFILE_FEATURES ( - ID INTEGER NOT NULL IDENTITY, - PROFILE_ID INTEGER NOT NULL, +CREATE TABLE IF NOT EXISTS DM_PROFILE_FEATURES ( + ID INT(11) NOT NULL AUTO_INCREMENT, + PROFILE_ID INT(11) NOT NULL, FEATURE_CODE VARCHAR(100) NOT NULL, - DEVICE_TYPE VARCHAR(300) NOT NULL , - TENANT_ID INTEGER NOT NULL , - CONTENT VARBINARY(max) NULL DEFAULT NULL, + DEVICE_TYPE VARCHAR(300) NOT NULL, + TENANT_ID INT(11) NOT NULL , + CONTENT BLOB NULL DEFAULT NULL, PRIMARY KEY (ID), CONSTRAINT FK_DM_PROFILE_DM_POLICY_FEATURES FOREIGN KEY (PROFILE_ID) REFERENCES DM_PROFILE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); - - +)ENGINE = InnoDB; -CREATE TABLE DM_ROLE_POLICY ( - ID INTEGER NOT NULL IDENTITY , +CREATE TABLE IF NOT EXISTS DM_ROLE_POLICY ( + ID INT(11) NOT NULL AUTO_INCREMENT , ROLE_NAME VARCHAR(45) NOT NULL , - POLICY_ID INTEGER NOT NULL , + POLICY_ID INT(11) NOT NULL , PRIMARY KEY (ID) , CONSTRAINT FK_ROLE_POLICY_POLICY FOREIGN KEY (POLICY_ID ) REFERENCES DM_POLICY (ID ) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; - - -CREATE TABLE DM_USER_POLICY ( - ID INTEGER NOT NULL IDENTITY , - POLICY_ID INTEGER NOT NULL , +CREATE TABLE IF NOT EXISTS DM_USER_POLICY ( + ID INT NOT NULL AUTO_INCREMENT , + POLICY_ID INT NOT NULL , USERNAME VARCHAR(45) NOT NULL , PRIMARY KEY (ID) , CONSTRAINT DM_POLICY_USER_POLICY @@ -258,43 +231,41 @@ CREATE TABLE DM_USER_POLICY ( REFERENCES DM_POLICY (ID ) ON DELETE NO ACTION ON UPDATE NO ACTION -); - - - CREATE TABLE DM_DEVICE_POLICY_APPLIED ( - ID INTEGER NOT NULL IDENTITY , - DEVICE_ID INTEGER NOT NULL , - ENROLMENT_ID INTEGER NOT NULL, - POLICY_ID INTEGER NOT NULL , - POLICY_CONTENT VARBINARY(max) NULL , - TENANT_ID INTEGER NOT NULL, - APPLIED SMALLINT NULL , - CREATED_TIME DATETIME2(0) NULL , - UPDATED_TIME DATETIME2(0) NULL , - APPLIED_TIME DATETIME2(0) NULL , +)ENGINE = InnoDB; + + + CREATE TABLE IF NOT EXISTS DM_DEVICE_POLICY_APPLIED ( + ID INT NOT NULL AUTO_INCREMENT , + DEVICE_ID INT NOT NULL , + ENROLMENT_ID INT(11) NOT NULL, + POLICY_ID INT NOT NULL , + POLICY_CONTENT BLOB NULL , + TENANT_ID INT NOT NULL, + APPLIED TINYINT(1) NULL , + CREATED_TIME TIMESTAMP NULL , + UPDATED_TIME TIMESTAMP NULL , + APPLIED_TIME TIMESTAMP NULL , PRIMARY KEY (ID) , CONSTRAINT FK_DM_POLICY_DEVCIE_APPLIED FOREIGN KEY (DEVICE_ID ) REFERENCES DM_DEVICE (ID ) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; - -CREATE TABLE DM_CRITERIA ( - ID INTEGER NOT NULL IDENTITY, - TENANT_ID INTEGER NOT NULL, +CREATE TABLE IF NOT EXISTS DM_CRITERIA ( + ID INT NOT NULL AUTO_INCREMENT, + TENANT_ID INT NOT NULL, NAME VARCHAR(50) NULL, PRIMARY KEY (ID) -); - +)ENGINE = InnoDB; -CREATE TABLE DM_POLICY_CRITERIA ( - ID INTEGER NOT NULL IDENTITY, - CRITERIA_ID INTEGER NOT NULL, - POLICY_ID INTEGER NOT NULL, +CREATE TABLE IF NOT EXISTS DM_POLICY_CRITERIA ( + ID INT NOT NULL AUTO_INCREMENT, + CRITERIA_ID INT NOT NULL, + POLICY_ID INT NOT NULL, PRIMARY KEY (ID), CONSTRAINT FK_CRITERIA_POLICY_CRITERIA FOREIGN KEY (CRITERIA_ID) @@ -306,80 +277,80 @@ CREATE TABLE DM_POLICY_CRITERIA ( REFERENCES DM_POLICY (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; -CREATE TABLE DM_POLICY_CRITERIA_PROPERTIES ( - ID INTEGER NOT NULL IDENTITY, - POLICY_CRITERION_ID INTEGER NOT NULL, + +CREATE TABLE IF NOT EXISTS DM_POLICY_CRITERIA_PROPERTIES ( + ID INT NOT NULL AUTO_INCREMENT, + POLICY_CRITERION_ID INT NOT NULL, PROP_KEY VARCHAR(45) NULL, PROP_VALUE VARCHAR(100) NULL, - CONTENT VARBINARY(max) NULL , + CONTENT BLOB NULL COMMENT 'This is used to ', PRIMARY KEY (ID), CONSTRAINT FK_POLICY_CRITERIA_PROPERTIES FOREIGN KEY (POLICY_CRITERION_ID) REFERENCES DM_POLICY_CRITERIA (ID) ON DELETE CASCADE ON UPDATE NO ACTION -); - -CREATE TABLE DM_POLICY_COMPLIANCE_STATUS ( - ID INTEGER NOT NULL IDENTITY, - DEVICE_ID INTEGER NOT NULL, - ENROLMENT_ID INTEGER NOT NULL, - POLICY_ID INTEGER NOT NULL, - TENANT_ID INTEGER NOT NULL, - STATUS INTEGER NULL, - LAST_SUCCESS_TIME DATETIME2(0) NULL, - LAST_REQUESTED_TIME DATETIME2(0) NULL, - LAST_FAILED_TIME DATETIME2(0) NULL, - ATTEMPTS INTEGER NULL, +)ENGINE = InnoDB; + + +CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_STATUS ( + ID INT NOT NULL AUTO_INCREMENT, + DEVICE_ID INT NOT NULL, + ENROLMENT_ID INT(11) NOT NULL, + POLICY_ID INT NOT NULL, + TENANT_ID INT NOT NULL, + STATUS INT NULL, + LAST_SUCCESS_TIME TIMESTAMP NULL, + LAST_REQUESTED_TIME TIMESTAMP NULL, + LAST_FAILED_TIME TIMESTAMP NULL, + ATTEMPTS INT NULL, PRIMARY KEY (ID) -); +)ENGINE = InnoDB; -CREATE TABLE DM_POLICY_CHANGE_MGT ( - ID INTEGER NOT NULL IDENTITY, - POLICY_ID INTEGER NOT NULL, - DEVICE_TYPE VARCHAR(300) NOT NULL, - TENANT_ID INTEGER NOT NULL, +CREATE TABLE IF NOT EXISTS DM_POLICY_CHANGE_MGT ( + ID INT NOT NULL AUTO_INCREMENT, + POLICY_ID INT NOT NULL, + DEVICE_TYPE VARCHAR(300) NOT NULL , + TENANT_ID INT(11) NOT NULL, PRIMARY KEY (ID) -); +)ENGINE = InnoDB; -CREATE TABLE DM_POLICY_COMPLIANCE_FEATURES ( - ID INTEGER NOT NULL IDENTITY, - COMPLIANCE_STATUS_ID INTEGER NOT NULL, - TENANT_ID INTEGER NOT NULL, +CREATE TABLE IF NOT EXISTS DM_POLICY_COMPLIANCE_FEATURES ( + ID INT NOT NULL AUTO_INCREMENT, + COMPLIANCE_STATUS_ID INT NOT NULL, + TENANT_ID INT NOT NULL, FEATURE_CODE VARCHAR(100) NOT NULL, - STATUS INTEGER NULL, + STATUS INT NULL, PRIMARY KEY (ID), CONSTRAINT FK_COMPLIANCE_FEATURES_STATUS FOREIGN KEY (COMPLIANCE_STATUS_ID) REFERENCES DM_POLICY_COMPLIANCE_STATUS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; -CREATE TABLE DM_DEVICE_GROUP_POLICY ( - ID INTEGER NOT NULL IDENTITY, - DEVICE_GROUP_ID INTEGER NOT NULL, - POLICY_ID INTEGER NOT NULL, - TENANT_ID INTEGER NOT NULL, - PRIMARY KEY (ID), - CONSTRAINT FK_DM_DEVICE_GROUP_POLICY - FOREIGN KEY (DEVICE_GROUP_ID) - REFERENCES DM_GROUP (ID) - ON DELETE NO ACTION - ON UPDATE NO ACTION, - CONSTRAINT FK_DM_DEVICE_GROUP_DM_POLICY - FOREIGN KEY (POLICY_ID) - REFERENCES DM_POLICY (ID) - ON DELETE NO ACTION - ON UPDATE NO ACTION -); -CREATE TABLE DM_APPLICATION ( - ID INTEGER IDENTITY NOT NULL, +CREATE TABLE IF NOT EXISTS DM_ENROLMENT ( + ID INTEGER AUTO_INCREMENT NOT NULL, + DEVICE_ID INTEGER NOT NULL, + OWNER VARCHAR(50) NOT NULL, + OWNERSHIP VARCHAR(45) DEFAULT NULL, + STATUS VARCHAR(50) NULL, + DATE_OF_ENROLMENT TIMESTAMP NULL DEFAULT NULL, + DATE_OF_LAST_UPDATE TIMESTAMP NULL DEFAULT NULL, + TENANT_ID INT NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT fk_dm_device_enrolment FOREIGN KEY (DEVICE_ID) REFERENCES + DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION +)ENGINE = InnoDB; + + +CREATE TABLE IF NOT EXISTS DM_APPLICATION ( + ID INTEGER AUTO_INCREMENT NOT NULL, NAME VARCHAR(150) NOT NULL, APP_IDENTIFIER VARCHAR(150) NOT NULL, PLATFORM VARCHAR(50) DEFAULT NULL, @@ -388,15 +359,16 @@ CREATE TABLE DM_APPLICATION ( TYPE VARCHAR(50) NULL, LOCATION_URL VARCHAR(100) DEFAULT NULL, IMAGE_URL VARCHAR(100) DEFAULT NULL, - APP_PROPERTIES VARBINARY(max) NULL, - MEMORY_USAGE INTEGER NULL, - IS_ACTIVE BIT NOT NULL DEFAULT 'FALSE', + APP_PROPERTIES BLOB NULL, + MEMORY_USAGE INTEGER(10) NULL, + IS_ACTIVE BOOLEAN NOT NULL DEFAULT FALSE, TENANT_ID INTEGER NOT NULL, PRIMARY KEY (ID) -); +)ENGINE = InnoDB; -CREATE TABLE DM_DEVICE_APPLICATION_MAPPING ( - ID INTEGER IDENTITY NOT NULL, + +CREATE TABLE IF NOT EXISTS DM_DEVICE_APPLICATION_MAPPING ( + ID INTEGER AUTO_INCREMENT NOT NULL, DEVICE_ID INTEGER NOT NULL, APPLICATION_ID INTEGER NOT NULL, TENANT_ID INTEGER NOT NULL, @@ -405,13 +377,44 @@ CREATE TABLE DM_DEVICE_APPLICATION_MAPPING ( DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT fk_dm_application FOREIGN KEY (APPLICATION_ID) REFERENCES DM_APPLICATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; -- POLICY RELATED TABLES FINISHED -- --- NOTIFICATION TABLE -- -CREATE TABLE DM_NOTIFICATION ( - NOTIFICATION_ID INTEGER IDENTITY NOT NULL, +-- DEVICE GROUP TABLES -- + +CREATE TABLE IF NOT EXISTS DM_GROUP ( + ID INTEGER AUTO_INCREMENT NOT NULL, + GROUP_NAME VARCHAR(100) DEFAULT NULL, + DESCRIPTION TEXT DEFAULT NULL, + DATE_OF_CREATE BIGINT DEFAULT NULL, + DATE_OF_LAST_UPDATE BIGINT DEFAULT NULL, + OWNER VARCHAR(45) DEFAULT NULL, + TENANT_ID INTEGER DEFAULT 0, + PRIMARY KEY (ID) +)ENGINE = InnoDB; + + + +CREATE TABLE IF NOT EXISTS DM_DEVICE_GROUP_MAP ( + ID INTEGER AUTO_INCREMENT NOT NULL, + DEVICE_ID INTEGER DEFAULT NULL, + GROUP_ID INTEGER DEFAULT NULL, + TENANT_ID INTEGER DEFAULT 0, + PRIMARY KEY (ID), + CONSTRAINT fk_DM_DEVICE_GROUP_MAP_DM_DEVICE2 FOREIGN KEY (DEVICE_ID) + REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT fk_DM_DEVICE_GROUP_MAP_DM_GROUP2 FOREIGN KEY (GROUP_ID) + REFERENCES DM_GROUP (ID) ON DELETE NO ACTION ON UPDATE NO ACTION +)ENGINE = InnoDB; + +-- END OF DEVICE GROUP TABLES -- + + +-- NOTIFICATION TABLES -- + +CREATE TABLE IF NOT EXISTS DM_NOTIFICATION ( + NOTIFICATION_ID INTEGER AUTO_INCREMENT NOT NULL, DEVICE_ID INTEGER NOT NULL, OPERATION_ID INTEGER NOT NULL, TENANT_ID INTEGER NOT NULL, @@ -422,58 +425,59 @@ CREATE TABLE DM_NOTIFICATION ( DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT fk_dm_operation_notification FOREIGN KEY (OPERATION_ID) REFERENCES DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); --- NOTIFICATION TABLE END -- +)ENGINE = InnoDB; + +-- END NOTIFICATION TABLES -- -IF EXISTS (SELECT * FROM sys.objects WHERE name = 'DM_DEVICE_INFO' and type = 'u') - DROP TABLE DM_DEVICE_INFO; -CREATE TABLE DM_DEVICE_INFO ( - ID INTEGER IDENTITY NOT NULL, - DEVICE_ID INTEGER NULL, +DROP TABLE IF EXISTS DM_DEVICE_INFO; + +CREATE TABLE IF NOT EXISTS DM_DEVICE_INFO ( + ID INTEGER AUTO_INCREMENT NOT NULL, + DEVICE_ID INT NULL, KEY_FIELD VARCHAR(45) NULL, VALUE_FIELD VARCHAR(100) NULL, PRIMARY KEY (ID), + INDEX DM_DEVICE_INFO_DEVICE_idx (DEVICE_ID ASC), CONSTRAINT DM_DEVICE_INFO_DEVICE FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +) +ENGINE = InnoDB; + -CREATE INDEX DM_DEVICE_INFO_DEVICE_idx ON DM_DEVICE_INFO (DEVICE_ID ASC); -IF EXISTS (SELECT * FROM sys.objects WHERE name = 'DM_DEVICE_LOCATION' and type = 'u') - DROP TABLE DM_DEVICE_LOCATION; +DROP TABLE IF EXISTS DM_DEVICE_LOCATION; -CREATE TABLE DM_DEVICE_LOCATION ( - ID INTEGER IDENTITY NOT NULL, - DEVICE_ID INTEGER NULL, - LATITUDE FLOAT NULL, - LONGITUDE FLOAT NULL, +CREATE TABLE IF NOT EXISTS DM_DEVICE_LOCATION ( + ID INTEGER AUTO_INCREMENT NOT NULL, + DEVICE_ID INT NULL, + LATITUDE DOUBLE NULL, + LONGITUDE DOUBLE NULL, STREET1 VARCHAR(45) NULL, STREET2 VARCHAR(45) NULL, CITY VARCHAR(45) NULL, ZIP VARCHAR(10) NULL, STATE VARCHAR(45) NULL, COUNTRY VARCHAR(45) NULL, - UPDATE_TIMESTAMP BIGINT NOT NULL, + UPDATE_TIMESTAMP BIGINT(15) NOT NULL, PRIMARY KEY (ID), + INDEX DM_DEVICE_LOCATION_DEVICE_idx (DEVICE_ID ASC), CONSTRAINT DM_DEVICE_LOCATION_DEVICE FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION -); +) +ENGINE = InnoDB; -CREATE INDEX DM_DEVICE_LOCATION_DEVICE_idx ON DM_DEVICE_LOCATION (DEVICE_ID ASC); +DROP TABLE IF EXISTS DM_DEVICE_DETAIL ; -IF EXISTS (SELECT * FROM sys.objects WHERE name = 'DM_DEVICE_DETAIL' and type = 'u') - DROP TABLE DM_DEVICE_DETAIL; - -CREATE TABLE DM_DEVICE_DETAIL ( - ID INTEGER NOT NULL IDENTITY, - DEVICE_ID INTEGER NOT NULL, +CREATE TABLE IF NOT EXISTS DM_DEVICE_DETAIL ( + ID INT NOT NULL AUTO_INCREMENT, + DEVICE_ID INT NOT NULL, DEVICE_MODEL VARCHAR(45) NULL, VENDOR VARCHAR(45) NULL, OS_VERSION VARCHAR(45) NULL, @@ -488,33 +492,43 @@ CREATE TABLE DM_DEVICE_DETAIL ( CPU_USAGE DECIMAL(5) NULL, TOTAL_RAM_MEMORY DECIMAL(30,3) NULL, AVAILABLE_RAM_MEMORY DECIMAL(30,3) NULL, - PLUGGED_IN INTEGER NULL, - UPDATE_TIMESTAMP BIGINT NOT NULL, + PLUGGED_IN INT(1) NULL, + UPDATE_TIMESTAMP BIGINT(15) NOT NULL, PRIMARY KEY (ID), + INDEX FK_DM_DEVICE_DETAILS_DEVICE_idx (DEVICE_ID ASC), CONSTRAINT FK_DM_DEVICE_DETAILS_DEVICE FOREIGN KEY (DEVICE_ID) REFERENCES DM_DEVICE (ID) ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + +-- POLICY AND DEVICE GROUP MAPPING -- + +CREATE TABLE IF NOT EXISTS DM_DEVICE_GROUP_POLICY ( + ID INT NOT NULL AUTO_INCREMENT, + DEVICE_GROUP_ID INT NOT NULL, + POLICY_ID INT NOT NULL, + TENANT_ID INT NOT NULL, + PRIMARY KEY (ID), + CONSTRAINT FK_DM_DEVICE_GROUP_POLICY + FOREIGN KEY (DEVICE_GROUP_ID) + REFERENCES DM_GROUP (ID) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT FK_DM_DEVICE_GROUP_DM_POLICY + FOREIGN KEY (POLICY_ID) + REFERENCES DM_POLICY (ID) + ON DELETE NO ACTION ON UPDATE NO ACTION -); +)ENGINE = InnoDB; -CREATE INDEX FK_DM_DEVICE_DETAILS_DEVICE_idx ON DM_DEVICE_DETAIL (DEVICE_ID ASC); +-- END OF POLICY AND DEVICE GROUP MAPPING -- -- DASHBOARD RELATED VIEWS -- -CREATE VIEW POLICY_COMPLIANCE_INFO AS -SELECT TOP 100 PERCENT -DEVICE_INFO.DEVICE_ID, -DEVICE_INFO.DEVICE_IDENTIFICATION, -DEVICE_INFO.PLATFORM, -DEVICE_INFO.OWNERSHIP, -DEVICE_INFO.CONNECTIVITY_STATUS, -ISNULL(DEVICE_WITH_POLICY_INFO.POLICY_ID, -1) AS POLICY_ID, -ISNULL(DEVICE_WITH_POLICY_INFO.IS_COMPLIANT, -1) AS -IS_COMPLIANT, -DEVICE_INFO.TENANT_ID -FROM -(SELECT +CREATE VIEW DEVICE_INFO_VIEW AS +SELECT DM_DEVICE.ID AS DEVICE_ID, DM_DEVICE.DEVICE_IDENTIFICATION, DM_DEVICE_TYPE.NAME AS PLATFORM, @@ -522,20 +536,34 @@ DM_ENROLMENT.OWNERSHIP, DM_ENROLMENT.STATUS AS CONNECTIVITY_STATUS, DM_DEVICE.TENANT_ID FROM DM_DEVICE, DM_DEVICE_TYPE, DM_ENROLMENT -WHERE DM_DEVICE.DEVICE_TYPE_ID = DM_DEVICE_TYPE.ID AND DM_DEVICE.ID = DM_ENROLMENT.DEVICE_ID) DEVICE_INFO -LEFT JOIN -(SELECT +WHERE DM_DEVICE.DEVICE_TYPE_ID = DM_DEVICE_TYPE.ID AND DM_DEVICE.ID = DM_ENROLMENT.DEVICE_ID; + +CREATE VIEW DEVICE_WITH_POLICY_INFO_VIEW AS +SELECT DEVICE_ID, POLICY_ID, STATUS AS IS_COMPLIANT +FROM DM_POLICY_COMPLIANCE_STATUS; + +CREATE VIEW POLICY_COMPLIANCE_INFO AS +SELECT +DEVICE_INFO_VIEW.DEVICE_ID, +DEVICE_INFO_VIEW.DEVICE_IDENTIFICATION, +DEVICE_INFO_VIEW.PLATFORM, +DEVICE_INFO_VIEW.OWNERSHIP, +DEVICE_INFO_VIEW.CONNECTIVITY_STATUS, +IFNULL(DEVICE_WITH_POLICY_INFO_VIEW.POLICY_ID, -1) AS POLICY_ID, +IFNULL(DEVICE_WITH_POLICY_INFO_VIEW.IS_COMPLIANT, -1) AS IS_COMPLIANT, +DEVICE_INFO_VIEW.TENANT_ID FROM -DM_POLICY_COMPLIANCE_STATUS) DEVICE_WITH_POLICY_INFO -ON DEVICE_INFO.DEVICE_ID = DEVICE_WITH_POLICY_INFO.DEVICE_ID -ORDER BY DEVICE_INFO.DEVICE_ID; -GO +DEVICE_INFO_VIEW +LEFT JOIN +DEVICE_WITH_POLICY_INFO_VIEW +ON DEVICE_INFO_VIEW.DEVICE_ID = DEVICE_WITH_POLICY_INFO_VIEW.DEVICE_ID +ORDER BY DEVICE_INFO_VIEW.DEVICE_ID; CREATE VIEW FEATURE_NON_COMPLIANCE_INFO AS -SELECT TOP 100 PERCENT +SELECT DM_DEVICE.ID AS DEVICE_ID, DM_DEVICE.DEVICE_IDENTIFICATION, DM_DEVICE_DETAIL.DEVICE_MODEL, @@ -545,8 +573,7 @@ DM_ENROLMENT.OWNERSHIP, DM_ENROLMENT.OWNER, DM_ENROLMENT.STATUS AS CONNECTIVITY_STATUS, DM_POLICY_COMPLIANCE_STATUS.POLICY_ID, -DM_DEVICE_TYPE.NAME -AS PLATFORM, +DM_DEVICE_TYPE.NAME AS PLATFORM, DM_POLICY_COMPLIANCE_FEATURES.FEATURE_CODE, DM_POLICY_COMPLIANCE_FEATURES.STATUS AS IS_COMPLAINT, DM_DEVICE.TENANT_ID @@ -554,13 +581,11 @@ FROM DM_POLICY_COMPLIANCE_FEATURES, DM_POLICY_COMPLIANCE_STATUS, DM_ENROLMENT, DM_DEVICE, DM_DEVICE_TYPE, DM_DEVICE_DETAIL WHERE DM_POLICY_COMPLIANCE_FEATURES.COMPLIANCE_STATUS_ID = DM_POLICY_COMPLIANCE_STATUS.ID AND -DM_POLICY_COMPLIANCE_STATUS.ENROLMENT_ID = -DM_ENROLMENT.ID AND +DM_POLICY_COMPLIANCE_STATUS.ENROLMENT_ID = DM_ENROLMENT.ID AND DM_POLICY_COMPLIANCE_STATUS.DEVICE_ID = DM_DEVICE.ID AND DM_DEVICE.DEVICE_TYPE_ID = DM_DEVICE_TYPE.ID AND DM_DEVICE.ID = DM_DEVICE_DETAIL.DEVICE_ID ORDER BY TENANT_ID, DEVICE_ID; -GO -- END OF DASHBOARD RELATED VIEWS --