blob: 15481061af59ce62e15ec9aa90fa53e243d21006 [file] [log] [blame]
--
--
-- Licensed to the Apache Software Foundation (ASF) under one
-- or more contributor license agreements. See the NOTICE file
-- distributed with this work for additional information
-- regarding copyright ownership. The ASF licenses this file
-- to you under the Apache License, Version 2.0 (the
-- "License"); you may not use this file except in compliance
-- with the License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing,
-- software distributed under the License is distributed on an
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-- KIND, either express or implied. See the License for the
-- specific language governing permissions and limitations
-- under the License.
--
use app_catalog;
-- AIRAVATA-2938: bring database schema into sync with registry-refactoring DB init scripts
-- first, change the db table engine of these tables to InnoDB to allow new tables to FK to them
ALTER TABLE `JOB_MANAGER_COMMAND` ENGINE = InnoDB;
ALTER TABLE `HOST_IPADDRESS` ENGINE = InnoDB;
ALTER TABLE `GSISSH_SUBMISSION` ENGINE = InnoDB;
ALTER TABLE `HOST_ALIAS` ENGINE = InnoDB;
ALTER TABLE `JOB_SUBMISSION_INTERFACE` ENGINE = InnoDB;
ALTER TABLE `LIBRARY_PREPAND_PATH` ENGINE = InnoDB;
ALTER TABLE `LOCAL_SUBMISSION` ENGINE = InnoDB;
-- ALTER TABLE `DATA_STORAGE_PREFERENCE` ENGINE = InnoDB;
ALTER TABLE `COMPUTE_RESOURCE` ENGINE = InnoDB;
ALTER TABLE `COMPUTE_RESOURCE_FILE_SYSTEM` ENGINE = InnoDB;
ALTER TABLE `LIBRARY_APEND_PATH` ENGINE = InnoDB;
ALTER TABLE `GSISSH_EXPORT` ENGINE = InnoDB;
ALTER TABLE `GLOBUS_GK_ENDPOINT` ENGINE = InnoDB;
ALTER TABLE `GATEWAY_PROFILE` ENGINE = InnoDB;
ALTER TABLE `CONFIGURATION` ENGINE = InnoDB;
ALTER TABLE `DATA_MOVEMENT_INTERFACE` ENGINE = InnoDB;
ALTER TABLE `GLOBUS_SUBMISSION` ENGINE = InnoDB;
ALTER TABLE `GRIDFTP_DATA_MOVEMENT` ENGINE = InnoDB;
ALTER TABLE `GSISSH_POSTJOBCOMMAND` ENGINE = InnoDB;
ALTER TABLE `POSTJOB_COMMAND` ENGINE = InnoDB;
ALTER TABLE `GRIDFTP_ENDPOINT` ENGINE = InnoDB;
ALTER TABLE `COMPUTE_RESOURCE_PREFERENCE` ENGINE = InnoDB;
ALTER TABLE `GSISSH_PREJOBCOMMAND` ENGINE = InnoDB;
ALTER TABLE `LOCAL_DATA_MOVEMENT` ENGINE = InnoDB;
ALTER TABLE `APPLICATION_INPUT` ENGINE = InnoDB;
ALTER TABLE `APP_ENVIRONMENT` ENGINE = InnoDB;
ALTER TABLE `APP_MODULE_MAPPING` ENGINE = InnoDB;
ALTER TABLE `APPLICATION_OUTPUT` ENGINE = InnoDB;
ALTER TABLE `APPLICATION_MODULE` ENGINE = InnoDB;
ALTER TABLE `UNICORE_DATAMOVEMENT` ENGINE = InnoDB;
ALTER TABLE `APPLICATION_INTERFACE` ENGINE = InnoDB;
ALTER TABLE `UNICORE_SUBMISSION` ENGINE = InnoDB;
-- ALTER TABLE `WORKFLOW_INPUT` ENGINE = InnoDB;
-- ALTER TABLE `WORKFLOW` ENGINE = InnoDB;
ALTER TABLE `SSH_JOB_SUBMISSION` ENGINE = InnoDB;
-- ALTER TABLE `WORKFLOW_OUTPUT` ENGINE = InnoDB;
ALTER TABLE `APPLICATION_DEPLOYMENT` ENGINE = InnoDB;
ALTER TABLE `RESOURCE_JOB_MANAGER` ENGINE = InnoDB;
ALTER TABLE `PREJOB_COMMAND` ENGINE = InnoDB;
ALTER TABLE `SCP_DATA_MOVEMENT` ENGINE = InnoDB;
ALTER TABLE `BATCH_QUEUE` ENGINE = InnoDB;
-- new tables
CREATE TABLE IF NOT EXISTS `PARSING_TEMPLATE` (
`PARSING_TEMPLATE_ID` varchar(255) NOT NULL,
`APP_INTERFACE_ID` varchar(255) NOT NULL,
`GATEWAY_ID` varchar(255) NOT NULL,
PRIMARY KEY (`PARSING_TEMPLATE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT exists `PARSER` (
`PARSER_ID` varchar(255) NOT NULL,
`IMAGE_NAME` varchar(255) NOT NULL,
`OUTPUT_DIR_PATH` varchar(255) NOT NULL,
`INPUT_DIR_PATH` varchar(255) NOT NULL,
`EXECUTION_COMMAND` varchar(255) NOT NULL,
`GATEWAY_ID` varchar(255) NOT NULL,
PRIMARY KEY (`PARSER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `GROUP_RESOURCE_PROFILE` (
`GROUP_RESOURCE_PROFILE_ID` varchar(255) NOT NULL,
`CREATION_TIME` bigint(20) NOT NULL,
`GATEWAY_ID` varchar(255) NOT NULL,
`GROUP_RESOURCE_PROFILE_NAME` varchar(255) DEFAULT NULL,
`UPDATE_TIME` bigint(20) NOT NULL,
`DEFAULT_CREDENTIAL_STORE_TOKEN` varchar(255) DEFAULT NULL,
PRIMARY KEY (`GROUP_RESOURCE_PROFILE_ID`),
UNIQUE KEY `GATEWAY_ID` (`GATEWAY_ID`,`GROUP_RESOURCE_PROFILE_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `GROUP_COMPUTE_RESOURCE_PREFERENCE` (
`RESOURCE_ID` varchar(255) NOT NULL,
`GROUP_RESOURCE_PROFILE_ID` varchar(255) NOT NULL,
`ALLOCATION_PROJECT_NUMBER` varchar(255) DEFAULT NULL,
`LOGIN_USERNAME` varchar(255) DEFAULT NULL,
`OVERRIDE_BY_AIRAVATA` smallint(6) DEFAULT NULL,
`PREFERED_BATCH_QUEUE` varchar(255) DEFAULT NULL,
`PREFERED_DATA_MOVE_PROTOCOL` varchar(255) DEFAULT NULL,
`PREFERED_JOB_SUB_PROTOCOL` varchar(255) DEFAULT NULL,
`QUALITY_OF_SERVICE` varchar(255) DEFAULT NULL,
`RESERVATION` varchar(255) DEFAULT NULL,
`RESERVATION_END_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`RESERVATION_START_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`RESOURCE_CS_TOKEN` varchar(255) DEFAULT NULL,
`SCRATCH_LOCATION` varchar(255) DEFAULT NULL,
`SSH_ACCOUNT_PROVISIONER` varchar(255) DEFAULT NULL,
`SSH_ACCOUNT_PROVISIONER_ADDITIONAL_INFO` varchar(1000) DEFAULT NULL,
`USAGE_REPORTING_GATEWAY_ID` varchar(255) DEFAULT NULL,
PRIMARY KEY (`RESOURCE_ID`,`GROUP_RESOURCE_PROFILE_ID`),
KEY `GROUP_RESOURCE_PROFILE_ID` (`GROUP_RESOURCE_PROFILE_ID`),
CONSTRAINT `GROUP_COMPUTE_RESOURCE_PREFERENCE_ibfk_1` FOREIGN KEY (`RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE,
CONSTRAINT `GROUP_COMPUTE_RESOURCE_PREFERENCE_ibfk_2` FOREIGN KEY (`GROUP_RESOURCE_PROFILE_ID`) REFERENCES `GROUP_RESOURCE_PROFILE` (`GROUP_RESOURCE_PROFILE_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `GATEWAY_GROUPS` (
`GATEWAY_ID` varchar(255) NOT NULL,
`ADMINS_GROUP_ID` varchar(255) DEFAULT NULL,
`DEFAULT_GATEWAY_USERS_GROUP_ID` varchar(255) DEFAULT NULL,
`READ_ONLY_ADMINS_GROUP_ID` varchar(255) DEFAULT NULL,
PRIMARY KEY (`GATEWAY_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `BATCH_QUEUE_RESOURCE_POLICY` (
`RESOURCE_POLICY_ID` varchar(255) NOT NULL,
`COMPUTE_RESOURCE_ID` varchar(255) NOT NULL,
`GROUP_RESOURCE_PROFILE_ID` varchar(255) NOT NULL,
`MAX_ALLOWED_CORES` int(11) DEFAULT NULL,
`MAX_ALLOWED_NODES` int(11) DEFAULT NULL,
`MAX_ALLOWED_WALLTIME` int(11) DEFAULT NULL,
`QUEUE_NAME` varchar(255) NOT NULL,
PRIMARY KEY (`RESOURCE_POLICY_ID`),
KEY `COMPUTE_RESOURCE_ID` (`COMPUTE_RESOURCE_ID`),
KEY `GROUP_RESOURCE_PROFILE_ID` (`GROUP_RESOURCE_PROFILE_ID`),
CONSTRAINT `BATCH_QUEUE_RESOURCE_POLICY_ibfk_1` FOREIGN KEY (`COMPUTE_RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE,
CONSTRAINT `BATCH_QUEUE_RESOURCE_POLICY_ibfk_2` FOREIGN KEY (`GROUP_RESOURCE_PROFILE_ID`) REFERENCES `GROUP_RESOURCE_PROFILE` (`GROUP_RESOURCE_PROFILE_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `PARSER_CONNECTOR` (
`PARSER_CONNECTOR_ID` varchar(255) NOT NULL,
`PARENT_PARSER_ID` varchar(255) NOT NULL,
`CHILD_PARSER_ID` varchar(255) NOT NULL,
`PARSING_TEMPLATE_ID` varchar(255) NOT NULL,
PRIMARY KEY (`PARSER_CONNECTOR_ID`),
KEY `PARENT_PARSER_ID` (`PARENT_PARSER_ID`),
KEY `CHILD_PARSER_ID` (`CHILD_PARSER_ID`),
KEY `PARSING_TEMPLATE_ID` (`PARSING_TEMPLATE_ID`),
CONSTRAINT `PARSER_CONNECTOR_ibfk_1` FOREIGN KEY (`PARENT_PARSER_ID`) REFERENCES `PARSER` (`PARSER_ID`) ON DELETE CASCADE,
CONSTRAINT `PARSER_CONNECTOR_ibfk_2` FOREIGN KEY (`CHILD_PARSER_ID`) REFERENCES `PARSER` (`PARSER_ID`) ON DELETE CASCADE,
CONSTRAINT `PARSER_CONNECTOR_ibfk_3` FOREIGN KEY (`PARSING_TEMPLATE_ID`) REFERENCES `PARSING_TEMPLATE` (`PARSING_TEMPLATE_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `PARSER_OUTPUT` (
`PARSER_OUTPUT_ID` varchar(255) NOT NULL,
`PARSER_OUTPUT_NAME` varchar(255) NOT NULL,
`PARSER_OUTPUT_REQUIRED` tinyint(1) NOT NULL,
`PARSER_ID` varchar(255) NOT NULL,
`OUTPUT_TYPE` varchar(255) NOT NULL,
PRIMARY KEY (`PARSER_OUTPUT_ID`),
KEY `PARSER_ID` (`PARSER_ID`),
CONSTRAINT `PARSER_OUTPUT_ibfk_1` FOREIGN KEY (`PARSER_ID`) REFERENCES `PARSER` (`PARSER_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `PARSER_INPUT` (
`PARSER_INPUT_ID` varchar(255) NOT NULL,
`PARSER_INPUT_NAME` varchar(255) NOT NULL,
`PARSER_INPUT_REQUIRED` tinyint(1) NOT NULL,
`PARSER_ID` varchar(255) NOT NULL,
`INPUT_TYPE` varchar(255) NOT NULL,
PRIMARY KEY (`PARSER_INPUT_ID`),
KEY `PARSER_ID` (`PARSER_ID`),
CONSTRAINT `PARSER_INPUT_ibfk_1` FOREIGN KEY (`PARSER_ID`) REFERENCES `PARSER` (`PARSER_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `PARSING_TEMPLATE_INPUT` (
`PARSING_TEMPLATE_INPUT_ID` varchar(255) NOT NULL,
`TARGET_PARSER_INPUT_ID` varchar(255) NOT NULL,
`APPLICATION_OUTPUT_NAME` varchar(255) DEFAULT NULL,
`VALUE` varchar(255) DEFAULT NULL,
`PARSING_TEMPLATE_ID` varchar(255) NOT NULL,
PRIMARY KEY (`PARSING_TEMPLATE_INPUT_ID`),
KEY `PARSING_TEMPLATE_ID` (`PARSING_TEMPLATE_ID`),
KEY `TARGET_PARSER_INPUT_ID` (`TARGET_PARSER_INPUT_ID`),
CONSTRAINT `PARSING_TEMPLATE_INPUT_ibfk_1` FOREIGN KEY (`TARGET_PARSER_INPUT_ID`) REFERENCES `PARSER_INPUT` (`PARSER_INPUT_ID`) ON DELETE CASCADE,
CONSTRAINT `PARSING_TEMPLATE_INPUT_ibfk_2` FOREIGN KEY (`PARSING_TEMPLATE_ID`) REFERENCES `PARSING_TEMPLATE` (`PARSING_TEMPLATE_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `COMPUTE_RESOURCE_POLICY` (
`RESOURCE_POLICY_ID` varchar(255) NOT NULL,
`COMPUTE_RESOURCE_ID` varchar(255) NOT NULL,
`GROUP_RESOURCE_PROFILE_ID` varchar(255) NOT NULL,
PRIMARY KEY (`RESOURCE_POLICY_ID`),
KEY `COMPUTE_RESOURCE_ID` (`COMPUTE_RESOURCE_ID`),
KEY `GROUP_RESOURCE_PROFILE_ID` (`GROUP_RESOURCE_PROFILE_ID`),
CONSTRAINT `COMPUTE_RESOURCE_POLICY_ibfk_1` FOREIGN KEY (`COMPUTE_RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE,
CONSTRAINT `COMPUTE_RESOURCE_POLICY_ibfk_2` FOREIGN KEY (`GROUP_RESOURCE_PROFILE_ID`) REFERENCES `GROUP_RESOURCE_PROFILE` (`GROUP_RESOURCE_PROFILE_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `PARSER_CONNECTOR_INPUT` (
`PARSER_CONNECTOR_INPUT_ID` varchar(255) NOT NULL,
`PARSER_INPUT_ID` varchar(255) NOT NULL,
`PARSER_OUTPUT_ID` varchar(255) DEFAULT NULL,
`VALUE` varchar(255) DEFAULT NULL,
`PARSER_CONNECTOR_ID` varchar(255) NOT NULL,
PRIMARY KEY (`PARSER_CONNECTOR_INPUT_ID`),
KEY `PARSER_INPUT_ID` (`PARSER_INPUT_ID`),
KEY `PARSER_OUTPUT_ID` (`PARSER_OUTPUT_ID`),
KEY `PARSER_CONNECTOR_ID` (`PARSER_CONNECTOR_ID`),
CONSTRAINT `PARSER_CONNECTOR_INPUT_ibfk_1` FOREIGN KEY (`PARSER_INPUT_ID`) REFERENCES `PARSER_INPUT` (`PARSER_INPUT_ID`) ON DELETE CASCADE,
CONSTRAINT `PARSER_CONNECTOR_INPUT_ibfk_2` FOREIGN KEY (`PARSER_OUTPUT_ID`) REFERENCES `PARSER_OUTPUT` (`PARSER_OUTPUT_ID`) ON DELETE CASCADE,
CONSTRAINT `PARSER_CONNECTOR_INPUT_ibfk_3` FOREIGN KEY (`PARSER_CONNECTOR_ID`) REFERENCES `PARSER_CONNECTOR` (`PARSER_CONNECTOR_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `GRP_SSH_ACC_PROV_CONFIG` (
`CONFIG_NAME` varchar(255) NOT NULL,
`GROUP_RESOURCE_PROFILE_ID` varchar(255) NOT NULL,
`RESOURCE_ID` varchar(255) NOT NULL,
`CONFIG_VALUE` varchar(255) DEFAULT NULL,
PRIMARY KEY (`CONFIG_NAME`,`GROUP_RESOURCE_PROFILE_ID`,`RESOURCE_ID`),
KEY `RESOURCE_ID` (`RESOURCE_ID`,`GROUP_RESOURCE_PROFILE_ID`),
CONSTRAINT `GRP_SSH_ACC_PROV_CONFIG_ibfk_1` FOREIGN KEY (`RESOURCE_ID`, `GROUP_RESOURCE_PROFILE_ID`) REFERENCES `GROUP_COMPUTE_RESOURCE_PREFERENCE` (`RESOURCE_ID`, `GROUP_RESOURCE_PROFILE_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `COMPUTE_RESOURCE_POLICY_QUEUES` (
`RESOURCE_POLICY_ID` varchar(255) NOT NULL,
`QUEUE_NAME` varchar(255) NOT NULL,
PRIMARY KEY (`RESOURCE_POLICY_ID`,`QUEUE_NAME`),
CONSTRAINT `COMPUTE_RESOURCE_POLICY_QUEUES_ibfk_1` FOREIGN KEY (`RESOURCE_POLICY_ID`) REFERENCES `COMPUTE_RESOURCE_POLICY` (`RESOURCE_POLICY_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- AIRAVATA-2768
alter table APPLICATION_INPUT modify METADATA VARCHAR(4096);
-- AIRAVATA-2758
-- Note: this doesn't really represent a schema change, rather some legacy database instances improperly had created these columns as NOT NULL
alter table COMPUTE_RESOURCE modify column CREATION_TIME TIMESTAMP DEFAULT NOW() null;
alter table COMPUTE_RESOURCE modify column CPUS_PER_NODE int default 0 null;
alter table COMPUTE_RESOURCE modify column DEFAULT_NODE_COUNT int default 0 null;
alter table COMPUTE_RESOURCE modify column DEFAULT_CPU_COUNT int default 0 null;
alter table COMPUTE_RESOURCE modify column DEFAULT_WALLTIME int default 0 null;
alter table COMPUTE_RESOURCE modify column UPDATE_TIME timestamp default '0000-00-00 00:00:00' null;
-- AIRAVATA-2827: OpenJPA 2.4.3 upgrade, convert BIT -> TINYINT(1)
alter table APPLICATION_OUTPUT modify column OUTPUT_STREAMING tinyint(1);
alter table APPLICATION_INTERFACE modify column ARCHIVE_WORKING_DIRECTORY tinyint(1);
alter table APPLICATION_INTERFACE modify column HAS_OPTIONAL_FILE_INPUTS tinyint(1);
alter table APPLICATION_DEPLOYMENT modify column EDITABLE_BY_USER tinyint(1);
alter table BATCH_QUEUE modify column IS_DEFAULT_QUEUE tinyint(1);
alter table COMPUTE_RESOURCE modify column GATEWAY_USAGE_REPORTING tinyint(1);
alter table USER_COMPUTE_RESOURCE_PREFERENCE modify column VALIDATED tinyint(1) default 0;
-- AIRAVATA-2872: NOT NULL foreign key columsn
set FOREIGN_KEY_CHECKS=0;
alter table HOST_ALIAS modify column RESOURCE_ID VARCHAR(255) NOT NULL;
alter table HOST_IPADDRESS modify column RESOURCE_ID VARCHAR(255) NOT NULL;
alter table GSISSH_EXPORT modify column SUBMISSION_ID VARCHAR(255) NOT NULL;
alter table GSISSH_PREJOBCOMMAND modify column SUBMISSION_ID VARCHAR(255) NOT NULL;
alter table GSISSH_POSTJOBCOMMAND modify column SUBMISSION_ID VARCHAR(255) NOT NULL;
alter table GLOBUS_GK_ENDPOINT modify column SUBMISSION_ID VARCHAR(255) NOT NULL;
alter table APPLICATION_DEPLOYMENT modify column APP_MODULE_ID VARCHAR(255) NOT NULL;
alter table APPLICATION_DEPLOYMENT modify column COMPUTE_HOSTID VARCHAR(255) NOT NULL;
alter table PREJOB_COMMAND modify column APPDEPLOYMENT_ID VARCHAR(255) NOT NULL;
alter table POSTJOB_COMMAND modify column APPDEPLOYMENT_ID VARCHAR(255) NOT NULL;
alter table LIBRARY_PREPAND_PATH modify column DEPLOYMENT_ID VARCHAR(255) NOT NULL;
alter table LIBRARY_APEND_PATH modify column DEPLOYMENT_ID VARCHAR(255) NOT NULL;
alter table APP_ENVIRONMENT modify column DEPLOYMENT_ID VARCHAR(255) NOT NULL;
alter table APP_MODULE_MAPPING modify column INTERFACE_ID VARCHAR(255) NOT NULL;
alter table APP_MODULE_MAPPING modify column MODULE_ID VARCHAR(255) NOT NULL;
alter table APPLICATION_INPUT modify column INTERFACE_ID VARCHAR(255) NOT NULL;
alter table APPLICATION_OUTPUT modify column INTERFACE_ID VARCHAR(255) NOT NULL;
alter table COMPUTE_RESOURCE_PREFERENCE modify column GATEWAY_ID VARCHAR(255) NOT NULL;
alter table COMPUTE_RESOURCE_PREFERENCE modify column RESOURCE_ID VARCHAR(255) NOT NULL;
alter table SSH_ACCOUNT_PROVISIONER_CONFIG modify column GATEWAY_ID VARCHAR(255) NOT NULL;
alter table SSH_ACCOUNT_PROVISIONER_CONFIG modify column RESOURCE_ID VARCHAR(255) NOT NULL;
-- alter table DATA_STORAGE_PREFERENCE modify column GATEWAY_ID VARCHAR(255) NOT NULL;
-- alter table WORKFLOW_INPUT modify column WF_TEMPLATE_ID VARCHAR(255) NOT NULL;
-- alter table WORKFLOW_OUTPUT modify column WF_TEMPLATE_ID VARCHAR(255) NOT NULL;
set FOREIGN_KEY_CHECKS=1;
-- AIRAVATA-2872: add missing column
alter table APP_ENVIRONMENT add column IF NOT EXISTS ENV_ORDER INTEGER;
-- AIRAVATA-2939: add NOT NULL constraints to DB fields that aren't in data model
alter table APPLICATION_MODULE modify column GATEWAY_ID VARCHAR(255) NOT NULL;
alter table APPLICATION_MODULE modify column CREATION_TIME TIMESTAMP DEFAULT NOW() NOT NULL;
alter table APPLICATION_MODULE modify column UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' NOT NULL;
alter table APPLICATION_DEPLOYMENT modify column CREATION_TIME TIMESTAMP DEFAULT NOW() NOT NULL;
alter table APPLICATION_DEPLOYMENT modify column UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' NOT NULL;
alter table APPLICATION_DEPLOYMENT modify column GATEWAY_ID VARCHAR(255) NOT NULL;
alter table APPLICATION_INTERFACE modify column GATEWAY_ID VARCHAR(255) NOT NULL;
alter table APPLICATION_INTERFACE modify column CREATION_TIME TIMESTAMP DEFAULT NOW() NOT NULL;
alter table APPLICATION_INTERFACE modify column UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' NOT NULL;
-- AIRAVATA-2938: bring database schema into sync with registry-refactoring DB init scripts
-- Some of these column changes involve FK columns so need to temporarily turn off FK checks
set FOREIGN_KEY_CHECKS=0;
ALTER TABLE `GROUP_COMPUTE_RESOURCE_PREFERENCE` CHANGE `RESERVATION_END_TIME` `RESERVATION_END_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00';
ALTER TABLE `GROUP_COMPUTE_RESOURCE_PREFERENCE` CHANGE `PREFERED_JOB_SUB_PROTOCOL` `PREFERED_JOB_SUB_PROTOCOL` varchar(255) DEFAULT NULL;
ALTER TABLE `GROUP_COMPUTE_RESOURCE_PREFERENCE` CHANGE `PREFERED_DATA_MOVE_PROTOCOL` `PREFERED_DATA_MOVE_PROTOCOL` varchar(255) DEFAULT NULL;
ALTER TABLE `GROUP_COMPUTE_RESOURCE_PREFERENCE` CHANGE `RESERVATION_START_TIME` `RESERVATION_START_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
ALTER TABLE `STORAGE_INTERFACE` CHANGE `CREATION_TIME` `CREATION_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE `STORAGE_INTERFACE` CHANGE `DATA_MOVEMENT_PROTOCOL` `DATA_MOVEMENT_PROTOCOL` varchar(255) NOT NULL;
ALTER TABLE `STORAGE_INTERFACE` CHANGE `UPDATE_TIME` `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00';
ALTER TABLE `LOCAL_SUBMISSION` CHANGE `SECURITY_PROTOCOL` `SECURITY_PROTOCOL` varchar(255) NOT NULL;
ALTER TABLE `PARSER` CHANGE `GATEWAY_ID` `GATEWAY_ID` varchar(255) NOT NULL;
ALTER TABLE `PARSER` DROP IF EXISTS `PARSER_INFO_ID`;
ALTER TABLE `PARSING_TEMPLATE` CHANGE `GATEWAY_ID` `GATEWAY_ID` varchar(255) NOT NULL;
ALTER TABLE `GROUP_RESOURCE_PROFILE` CHANGE `UPDATE_TIME` `UPDATE_TIME` bigint(20) NOT NULL;
ALTER TABLE `GROUP_RESOURCE_PROFILE` CHANGE `GATEWAY_ID` `GATEWAY_ID` varchar(255) NOT NULL;
ALTER TABLE `GROUP_RESOURCE_PROFILE` CHANGE `CREATION_TIME` `CREATION_TIME` bigint(20) NOT NULL;
ALTER TABLE `PARSING_TEMPLATE_INPUT` CHANGE `TARGET_PARSER_INPUT_ID` `TARGET_PARSER_INPUT_ID` varchar(255) NOT NULL;
ALTER TABLE `GROUP_COMPUTE_RESOURCE_PREFERENCE` CHANGE `SSH_ACCOUNT_PROVISIONER_ADDITIONAL_INFO` `SSH_ACCOUNT_PROVISIONER_ADDITIONAL_INFO` varchar(1000) DEFAULT NULL;
ALTER TABLE `BATCH_QUEUE` CHANGE `QUEUE_SPECIFIC_MACROS` `QUEUE_SPECIFIC_MACROS` varchar(255) DEFAULT NULL;
ALTER TABLE `BATCH_QUEUE` CHANGE `DEFAULT_WALLTIME` `DEFAULT_WALLTIME` int(11) DEFAULT NULL;
ALTER TABLE `BATCH_QUEUE_RESOURCE_POLICY` CHANGE `COMPUTE_RESOURCE_ID` `COMPUTE_RESOURCE_ID` varchar(255) NOT NULL;
ALTER TABLE `BATCH_QUEUE_RESOURCE_POLICY` CHANGE `GROUP_RESOURCE_PROFILE_ID` `GROUP_RESOURCE_PROFILE_ID` varchar(255) NOT NULL;
ALTER TABLE `BATCH_QUEUE_RESOURCE_POLICY` CHANGE `QUEUE_NAME` `QUEUE_NAME` varchar(255) NOT NULL;
ALTER TABLE `APPLICATION_OUTPUT` CHANGE `OUTPUT_STREAMING` `OUTPUT_STREAMING` smallint(6) DEFAULT NULL;
ALTER TABLE `APPLICATION_INTERFACE` CHANGE `ARCHIVE_WORKING_DIRECTORY` `ARCHIVE_WORKING_DIRECTORY` smallint(6) DEFAULT NULL;
ALTER TABLE `COMPUTE_RESOURCE` CHANGE `CPUS_PER_NODE` `CPUS_PER_NODE` int(11) DEFAULT NULL;
ALTER TABLE `COMPUTE_RESOURCE` CHANGE `CREATION_TIME` `CREATION_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE `COMPUTE_RESOURCE` CHANGE `DEFAULT_NODE_COUNT` `DEFAULT_NODE_COUNT` int(11) DEFAULT NULL;
ALTER TABLE `COMPUTE_RESOURCE` CHANGE `UPDATE_TIME` `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00';
ALTER TABLE `COMPUTE_RESOURCE` CHANGE `DEFAULT_CPU_COUNT` `DEFAULT_CPU_COUNT` int(11) DEFAULT NULL;
ALTER TABLE `COMPUTE_RESOURCE` CHANGE `DEFAULT_WALLTIME` `DEFAULT_WALLTIME` int(11) DEFAULT NULL;
ALTER TABLE `COMPUTE_RESOURCE` CHANGE `GATEWAY_USAGE_MODULE_LOAD_CMD` `GATEWAY_USAGE_MODULE_LOAD_CMD` varchar(500) DEFAULT NULL;
ALTER TABLE `COMPUTE_RESOURCE_POLICY` CHANGE `GROUP_RESOURCE_PROFILE_ID` `GROUP_RESOURCE_PROFILE_ID` varchar(255) NOT NULL;
ALTER TABLE `COMPUTE_RESOURCE_POLICY` CHANGE `COMPUTE_RESOURCE_ID` `COMPUTE_RESOURCE_ID` varchar(255) NOT NULL;
ALTER TABLE `APPLICATION_INPUT` CHANGE `IS_READ_ONLY` `IS_READ_ONLY` smallint(6) DEFAULT NULL;
ALTER TABLE `COMPUTE_RESOURCE_POLICY_QUEUES` CHANGE `RESOURCE_POLICY_ID` `RESOURCE_POLICY_ID` varchar(255) NOT NULL;
ALTER TABLE `COMPUTE_RESOURCE_POLICY_QUEUES` CHANGE `QUEUE_NAME` `QUEUE_NAME` varchar(255) NOT NULL;
ALTER TABLE `COMPUTE_RESOURCE_PREFERENCE` CHANGE `SSH_ACCOUNT_PROVISIONER_ADDITIONAL_INFO` `SSH_ACCOUNT_PROVISIONER_ADDITIONAL_INFO` varchar(1000) DEFAULT NULL;
ALTER TABLE `COMPUTE_RESOURCE_PREFERENCE` CHANGE `RESERVATION_START_TIME` `RESERVATION_START_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
ALTER TABLE `COMPUTE_RESOURCE_PREFERENCE` CHANGE `RESERVATION_END_TIME` `RESERVATION_END_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00';
ALTER TABLE `APPLICATION_DEPLOYMENT` CHANGE `DEFAULT_WALLTIME` `DEFAULT_WALLTIME` int(11) DEFAULT NULL;
ALTER TABLE `APPLICATION_DEPLOYMENT` CHANGE `DEFAULT_CPU_COUNT` `DEFAULT_CPU_COUNT` int(11) DEFAULT NULL;
ALTER TABLE `APPLICATION_DEPLOYMENT` CHANGE `DEFAULT_NODE_COUNT` `DEFAULT_NODE_COUNT` int(11) DEFAULT NULL;
set FOREIGN_KEY_CHECKS=1;
ALTER TABLE `GATEWAY_PROFILE` DROP IF EXISTS `DATA_STORAGE_HOST`;
-- This table was accidentally created by DB init script, but entity was mapped to STORAGE_PREFERENCE
DROP TABLE IF EXISTS `DATA_STORAGE_PREFERENCE`;
-- DROP TABLE IF EXISTS `WORKFLOW`, `WORKFLOW_INPUT`, `WORKFLOW_OUTPUT`;
-- keys indexes
ALTER TABLE `BATCH_QUEUE_RESOURCE_POLICY` ADD KEY IF NOT EXISTS `COMPUTE_RESOURCE_ID` (`COMPUTE_RESOURCE_ID`);
ALTER TABLE `BATCH_QUEUE_RESOURCE_POLICY` ADD KEY IF NOT EXISTS `GROUP_RESOURCE_PROFILE_ID` (`GROUP_RESOURCE_PROFILE_ID`);
ALTER TABLE `BATCH_QUEUE_RESOURCE_POLICY` DROP INDEX IF EXISTS `I_BTCHLCY_GROUPRESOURCEPROFILE`;
ALTER TABLE `COMPUTE_RESOURCE_POLICY_QUEUES` ADD PRIMARY KEY IF NOT EXISTS (`RESOURCE_POLICY_ID`,`QUEUE_NAME`);
ALTER TABLE `COMPUTE_RESOURCE_POLICY_QUEUES` DROP INDEX IF EXISTS `I_CMPT_QS_RESOURCE_POLICY_ID`;
ALTER TABLE `COMPUTE_RESOURCE_POLICY` ADD KEY IF NOT EXISTS `COMPUTE_RESOURCE_ID` (`COMPUTE_RESOURCE_ID`);
ALTER TABLE `COMPUTE_RESOURCE_POLICY` ADD KEY IF NOT EXISTS `GROUP_RESOURCE_PROFILE_ID` (`GROUP_RESOURCE_PROFILE_ID`);
ALTER TABLE `COMPUTE_RESOURCE_POLICY` DROP INDEX IF EXISTS `I_CMPTLCY_GROUPRESOURCEPROFILE`;
ALTER TABLE `GROUP_COMPUTE_RESOURCE_PREFERENCE` ADD KEY IF NOT EXISTS `GROUP_RESOURCE_PROFILE_ID` (`GROUP_RESOURCE_PROFILE_ID`);
ALTER TABLE `GROUP_RESOURCE_PROFILE` ADD UNIQUE KEY IF NOT EXISTS `GATEWAY_ID` (`GATEWAY_ID`,`GROUP_RESOURCE_PROFILE_NAME`);
ALTER TABLE `GRP_SSH_ACC_PROV_CONFIG` ADD KEY IF NOT EXISTS `RESOURCE_ID` (`RESOURCE_ID`,`GROUP_RESOURCE_PROFILE_ID`);
ALTER TABLE `GRP_SSH_ACC_PROV_CONFIG` DROP INDEX IF EXISTS `CONFIG_NAME`;
ALTER TABLE `PARALLELISM_COMMAND` ADD PRIMARY KEY IF NOT EXISTS (`RESOURCE_JOB_MANAGER_ID`,`COMMAND_TYPE`);
ALTER TABLE `PARALLELISM_COMMAND` DROP INDEX IF EXISTS `COMMAND_TYPE`;
ALTER TABLE `PARSING_TEMPLATE_INPUT` ADD KEY IF NOT EXISTS `TARGET_PARSER_INPUT_ID` (`TARGET_PARSER_INPUT_ID`);
ALTER TABLE `PARSING_TEMPLATE_INPUT` DROP INDEX IF EXISTS `PARSER_INPUT_ID`;
ALTER TABLE `POSTJOB_COMMAND` ADD PRIMARY KEY IF NOT EXISTS (`APPDEPLOYMENT_ID`,`COMMAND`);
ALTER TABLE `POSTJOB_COMMAND` DROP INDEX IF EXISTS `COMMAND`;
ALTER TABLE `SSH_ACCOUNT_PROVISIONER_CONFIG` ADD PRIMARY KEY IF NOT EXISTS (`GATEWAY_ID`,`RESOURCE_ID`,`CONFIG_NAME`);
ALTER TABLE `SSH_ACCOUNT_PROVISIONER_CONFIG` DROP INDEX IF EXISTS `CONFIG_NAME`;
ALTER TABLE `STORAGE_INTERFACE` ADD PRIMARY KEY IF NOT EXISTS (`STORAGE_RESOURCE_ID`,`DATA_MOVEMENT_INTERFACE_ID`);
ALTER TABLE `STORAGE_INTERFACE` DROP INDEX IF EXISTS `DATA_MOVEMENT_INTERFACE_ID`;
-- Some of these FKs refer to non-existent data. Rather than cleaning up the orphaned data, we'll just turn off FK checks.
set FOREIGN_KEY_CHECKS=0;
-- create table delete_ids as select DEPLOYMENT_ID from APP_ENVIRONMENT a where NOT EXISTS (select 1 from APPLICATION_DEPLOYMENT where DEPLOYMENT_ID = ae.DEPLOYMENT_ID);
-- delete from APP_ENVIRONMENT where DEPLOYMENT_ID in (select DEPLOYMENT_ID from delete_ids);
ALTER TABLE `APP_ENVIRONMENT` ADD CONSTRAINT `APP_ENVIRONMENT_ibfk_1` FOREIGN KEY IF NOT EXISTS (`DEPLOYMENT_ID`) REFERENCES `APPLICATION_DEPLOYMENT` (`DEPLOYMENT_ID`) ON DELETE CASCADE;
-- drop table delete_ids;
-- create table delete_ids as select INTERFACE_ID from APP_MODULE_MAPPING a where NOT EXISTS (select 1 from APPLICATION_INTERFACE where INTERFACE_ID = a.INTERFACE_ID);
-- delete from APP_MODULE_MAPPING where INTERFACE_ID in (select INTERFACE_ID from delete_ids);
ALTER TABLE `APP_MODULE_MAPPING` ADD CONSTRAINT `APP_MODULE_MAPPING_ibfk_1` FOREIGN KEY IF NOT EXISTS (`INTERFACE_ID`) REFERENCES `APPLICATION_INTERFACE` (`INTERFACE_ID`) ON DELETE CASCADE;
-- drop table delete_ids;
-- create table delete_ids as select MODULE_ID from APP_MODULE_MAPPING a where NOT EXISTS (select 1 from APPLICATION_MODULE where MODULE_ID = a.MODULE_ID);
-- delete from APP_MODULE_MAPPING where MODULE_ID in (select MODULE_ID from delete_ids);
ALTER TABLE `APP_MODULE_MAPPING` ADD CONSTRAINT `APP_MODULE_MAPPING_ibfk_2` FOREIGN KEY IF NOT EXISTS (`MODULE_ID`) REFERENCES `APPLICATION_MODULE` (`MODULE_ID`) ON DELETE CASCADE;
-- drop table delete_ids;
-- create table delete_ids as select COMPUTE_HOSTID from APPLICATION_DEPLOYMENT a where NOT EXISTS (select 1 from COMPUTE_RESOURCE where RESOURCE_ID = a.COMPUTE_HOSTID);
-- delete from APPLICATION_DEPLOYMENT where COMPUTE_HOSTID in (select COMPUTE_HOSTID from delete_ids);
ALTER TABLE `APPLICATION_DEPLOYMENT` ADD CONSTRAINT `APPLICATION_DEPLOYMENT_ibfk_1` FOREIGN KEY IF NOT EXISTS (`COMPUTE_HOSTID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
-- drop table delete_ids;
-- create table delete_ids as select APP_MODULE_ID from APPLICATION_DEPLOYMENT a where NOT EXISTS (select 1 from APPLICATION_MODULE where MODULE_ID = a.APP_MODULE_ID);
-- delete from APPLICATION_DEPLOYMENT where APP_MODULE_ID in (select APP_MODULE_ID from delete_ids);
ALTER TABLE `APPLICATION_DEPLOYMENT` ADD CONSTRAINT `APPLICATION_DEPLOYMENT_ibfk_2` FOREIGN KEY IF NOT EXISTS (`APP_MODULE_ID`) REFERENCES `APPLICATION_MODULE` (`MODULE_ID`) ON DELETE CASCADE;
-- drop table delete_ids;
-- create table delete_ids as select INTERFACE_ID from APPLICATION_INPUT a where NOT EXISTS (select 1 from APPLICATION_INTERFACE where INTERFACE_ID = a.INTERFACE_ID);
-- delete from APPLICATION_INPUT where INTERFACE_ID in (select INTERFACE_ID from delete_ids);
ALTER TABLE `APPLICATION_INPUT` ADD CONSTRAINT `APPLICATION_INPUT_ibfk_1` FOREIGN KEY IF NOT EXISTS(`INTERFACE_ID`) REFERENCES `APPLICATION_INTERFACE` (`INTERFACE_ID`) ON DELETE CASCADE;
-- drop table delete_ids;
-- create table delete_ids as select INTERFACE_ID from APPLICATION_OUTPUT a where NOT EXISTS (select 1 from APPLICATION_INTERFACE where INTERFACE_ID = a.INTERFACE_ID);
-- delete from APPLICATION_OUTPUT where INTERFACE_ID in (select INTERFACE_ID from delete_ids);
ALTER TABLE `APPLICATION_OUTPUT` ADD CONSTRAINT `APPLICATION_OUTPUT_ibfk_1` FOREIGN KEY IF NOT EXISTS(`INTERFACE_ID`) REFERENCES `APPLICATION_INTERFACE` (`INTERFACE_ID`) ON DELETE CASCADE;
-- drop table delete_ids;
ALTER TABLE `BATCH_QUEUE_RESOURCE_POLICY` ADD CONSTRAINT `BATCH_QUEUE_RESOURCE_POLICY_ibfk_1` FOREIGN KEY IF NOT EXISTS(`COMPUTE_RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `BATCH_QUEUE_RESOURCE_POLICY` ADD CONSTRAINT `BATCH_QUEUE_RESOURCE_POLICY_ibfk_2` FOREIGN KEY IF NOT EXISTS(`GROUP_RESOURCE_PROFILE_ID`) REFERENCES `GROUP_RESOURCE_PROFILE` (`GROUP_RESOURCE_PROFILE_ID`) ON DELETE CASCADE;
ALTER TABLE `BATCH_QUEUE` ADD CONSTRAINT `BATCH_QUEUE_ibfk_1` FOREIGN KEY IF NOT EXISTS(`COMPUTE_RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `COMPUTE_RESOURCE_FILE_SYSTEM` ADD CONSTRAINT `COMPUTE_RESOURCE_FILE_SYSTEM_ibfk_1` FOREIGN KEY IF NOT EXISTS(`COMPUTE_RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `COMPUTE_RESOURCE_POLICY_QUEUES` ADD CONSTRAINT `COMPUTE_RESOURCE_POLICY_QUEUES_ibfk_1` FOREIGN KEY IF NOT EXISTS(`RESOURCE_POLICY_ID`) REFERENCES `COMPUTE_RESOURCE_POLICY` (`RESOURCE_POLICY_ID`) ON DELETE CASCADE;
ALTER TABLE `COMPUTE_RESOURCE_POLICY` ADD CONSTRAINT `COMPUTE_RESOURCE_POLICY_ibfk_1` FOREIGN KEY IF NOT EXISTS(`COMPUTE_RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `COMPUTE_RESOURCE_POLICY` ADD CONSTRAINT `COMPUTE_RESOURCE_POLICY_ibfk_2` FOREIGN KEY IF NOT EXISTS(`GROUP_RESOURCE_PROFILE_ID`) REFERENCES `GROUP_RESOURCE_PROFILE` (`GROUP_RESOURCE_PROFILE_ID`) ON DELETE CASCADE;
ALTER TABLE `COMPUTE_RESOURCE_PREFERENCE` ADD CONSTRAINT `COMPUTE_RESOURCE_PREFERENCE_ibfk_1` FOREIGN KEY IF NOT EXISTS(`RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `COMPUTE_RESOURCE_PREFERENCE` ADD CONSTRAINT `COMPUTE_RESOURCE_PREFERENCE_ibfk_2` FOREIGN KEY IF NOT EXISTS(`GATEWAY_ID`) REFERENCES `GATEWAY_PROFILE` (`GATEWAY_ID`) ON DELETE CASCADE;
ALTER TABLE `DATA_MOVEMENT_INTERFACE` ADD CONSTRAINT `DATA_MOVEMENT_INTERFACE_ibfk_1` FOREIGN KEY IF NOT EXISTS(`COMPUTE_RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `GLOBUS_GK_ENDPOINT` ADD CONSTRAINT `GLOBUS_GK_ENDPOINT_ibfk_1` FOREIGN KEY IF NOT EXISTS(`SUBMISSION_ID`) REFERENCES `GLOBUS_SUBMISSION` (`SUBMISSION_ID`) ON DELETE CASCADE;
ALTER TABLE `GRIDFTP_ENDPOINT` ADD CONSTRAINT `GRIDFTP_ENDPOINT_ibfk_1` FOREIGN KEY IF NOT EXISTS(`DATA_MOVEMENT_INTERFACE_ID`) REFERENCES `GRIDFTP_DATA_MOVEMENT` (`DATA_MOVEMENT_INTERFACE_ID`) ON DELETE CASCADE;
ALTER TABLE `GROUP_COMPUTE_RESOURCE_PREFERENCE` ADD CONSTRAINT `GROUP_COMPUTE_RESOURCE_PREFERENCE_ibfk_1` FOREIGN KEY IF NOT EXISTS(`RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `GROUP_COMPUTE_RESOURCE_PREFERENCE` ADD CONSTRAINT `GROUP_COMPUTE_RESOURCE_PREFERENCE_ibfk_2` FOREIGN KEY IF NOT EXISTS(`GROUP_RESOURCE_PROFILE_ID`) REFERENCES `GROUP_RESOURCE_PROFILE` (`GROUP_RESOURCE_PROFILE_ID`) ON DELETE CASCADE;
ALTER TABLE `GRP_SSH_ACC_PROV_CONFIG` ADD CONSTRAINT `GRP_SSH_ACC_PROV_CONFIG_ibfk_1` FOREIGN KEY IF NOT EXISTS(`RESOURCE_ID`, `GROUP_RESOURCE_PROFILE_ID`) REFERENCES `GROUP_COMPUTE_RESOURCE_PREFERENCE` (`RESOURCE_ID`, `GROUP_RESOURCE_PROFILE_ID`) ON DELETE CASCADE;
ALTER TABLE `GSISSH_EXPORT` ADD CONSTRAINT `GSISSH_EXPORT_ibfk_1` FOREIGN KEY IF NOT EXISTS(`SUBMISSION_ID`) REFERENCES `GSISSH_SUBMISSION` (`SUBMISSION_ID`) ON DELETE CASCADE;
ALTER TABLE `GSISSH_POSTJOBCOMMAND` ADD CONSTRAINT `GSISSH_POSTJOBCOMMAND_ibfk_1` FOREIGN KEY IF NOT EXISTS(`SUBMISSION_ID`) REFERENCES `GSISSH_SUBMISSION` (`SUBMISSION_ID`) ON DELETE CASCADE;
ALTER TABLE `GSISSH_PREJOBCOMMAND` ADD CONSTRAINT `GSISSH_PREJOBCOMMAND_ibfk_1` FOREIGN KEY IF NOT EXISTS(`SUBMISSION_ID`) REFERENCES `GSISSH_SUBMISSION` (`SUBMISSION_ID`) ON DELETE CASCADE;
ALTER TABLE `HOST_ALIAS` ADD CONSTRAINT `HOST_ALIAS_ibfk_1` FOREIGN KEY IF NOT EXISTS (`RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `HOST_IPADDRESS` ADD CONSTRAINT `HOST_IPADDRESS_ibfk_1` FOREIGN KEY IF NOT EXISTS (`RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `JOB_MANAGER_COMMAND` ADD CONSTRAINT `JOB_MANAGER_COMMAND_ibfk_1` FOREIGN KEY IF NOT EXISTS (`RESOURCE_JOB_MANAGER_ID`) REFERENCES `RESOURCE_JOB_MANAGER` (`RESOURCE_JOB_MANAGER_ID`) ON DELETE CASCADE;
ALTER TABLE `JOB_SUBMISSION_INTERFACE` ADD CONSTRAINT `JOB_SUBMISSION_INTERFACE_ibfk_1` FOREIGN KEY IF NOT EXISTS (`COMPUTE_RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE` (`RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `LIBRARY_APEND_PATH` ADD CONSTRAINT `LIBRARY_APEND_PATH_ibfk_1` FOREIGN KEY IF NOT EXISTS (`DEPLOYMENT_ID`) REFERENCES `APPLICATION_DEPLOYMENT` (`DEPLOYMENT_ID`) ON DELETE CASCADE;
ALTER TABLE `LIBRARY_PREPAND_PATH` ADD CONSTRAINT `LIBRARY_PREPAND_PATH_ibfk_1` FOREIGN KEY IF NOT EXISTS (`DEPLOYMENT_ID`) REFERENCES `APPLICATION_DEPLOYMENT` (`DEPLOYMENT_ID`) ON DELETE CASCADE;
ALTER TABLE `LOCAL_SUBMISSION` ADD CONSTRAINT `LOCAL_SUBMISSION_ibfk_1` FOREIGN KEY IF NOT EXISTS (`RESOURCE_JOB_MANAGER_ID`) REFERENCES `RESOURCE_JOB_MANAGER` (`RESOURCE_JOB_MANAGER_ID`);
ALTER TABLE `MODULE_LOAD_CMD` ADD CONSTRAINT `MODULE_LOAD_CMD_ibfk_1` FOREIGN KEY IF NOT EXISTS (`APP_DEPLOYMENT_ID`) REFERENCES `APPLICATION_DEPLOYMENT` (`DEPLOYMENT_ID`) ON DELETE CASCADE;
ALTER TABLE `PARALLELISM_COMMAND` ADD CONSTRAINT `PARALLELISM_COMMAND_ibfk_1` FOREIGN KEY IF NOT EXISTS (`RESOURCE_JOB_MANAGER_ID`) REFERENCES `RESOURCE_JOB_MANAGER` (`RESOURCE_JOB_MANAGER_ID`) ON DELETE CASCADE;
ALTER TABLE `POSTJOB_COMMAND` ADD CONSTRAINT `POSTJOB_COMMAND_ibfk_1` FOREIGN KEY IF NOT EXISTS (`APPDEPLOYMENT_ID`) REFERENCES `APPLICATION_DEPLOYMENT` (`DEPLOYMENT_ID`) ON DELETE CASCADE;
ALTER TABLE `PREJOB_COMMAND` ADD CONSTRAINT `PREJOB_COMMAND_ibfk_1` FOREIGN KEY IF NOT EXISTS (`APPDEPLOYMENT_ID`) REFERENCES `APPLICATION_DEPLOYMENT` (`DEPLOYMENT_ID`) ON DELETE CASCADE;
ALTER TABLE `SSH_ACCOUNT_PROVISIONER_CONFIG` ADD CONSTRAINT `SSH_ACCOUNT_PROVISIONER_CONFIG_ibfk_1` FOREIGN KEY IF NOT EXISTS (`GATEWAY_ID`, `RESOURCE_ID`) REFERENCES `COMPUTE_RESOURCE_PREFERENCE` (`GATEWAY_ID`, `RESOURCE_ID`) ON DELETE CASCADE;
ALTER TABLE `SSH_JOB_SUBMISSION` ADD CONSTRAINT `SSH_JOB_SUBMISSION_ibfk_1` FOREIGN KEY IF NOT EXISTS (`RESOURCE_JOB_MANAGER_ID`) REFERENCES `RESOURCE_JOB_MANAGER` (`RESOURCE_JOB_MANAGER_ID`);
-- Note: to deal with STORAGE_INTERFACEs that reference non-existent STORAGE_RESOURCEs, use the following to clean up orphans
-- MariaDB [app_catalog]> create table temp1 as select STORAGE_RESOURCE_ID from STORAGE_INTERFACE si where not exists (select 1 from STORAGE_RESOURCE sr where sr.STORAGE_RESOURCE_ID = si.STORAGE_RESOURCE_ID);
-- MariaDB [app_catalog]> delete from STORAGE_INTERFACE where STORAGE_RESOURCE_ID in (select STORAGE_RESOURCE_ID from temp1);
ALTER TABLE `STORAGE_INTERFACE` ADD CONSTRAINT `STORAGE_INTERFACE_ibfk_1` FOREIGN KEY IF NOT EXISTS (`STORAGE_RESOURCE_ID`) REFERENCES `STORAGE_RESOURCE` (`STORAGE_RESOURCE_ID`) ON DELETE CASCADE;
set FOREIGN_KEY_CHECKS=1;
-- Older tables that no longer exist, or don't exist with those names
DROP TABLE IF EXISTS `DATA_STORAGE_INTERFACE`;
DROP TABLE IF EXISTS `GATEWAY_CLIENT_CREDENTIAL`;
-- misnamed column. This migration was only needed in development environment where code with old column name was deployed.
-- UPDATE PARSER_CONNECTOR_INPUT set PARSER_OUTPUT_ID = PARENT_OUTPUT_ID;
-- ALTER TABLE `PARSER_CONNECTOR_INPUT` DROP IF EXISTS `PARENT_OUTPUT_ID`;
-- ALTER TABLE `PARSING_TEMPLATE_INPUT` DROP IF EXISTS `PARSER_INPUT_ID`;
ALTER TABLE `UNICORE_DATAMOVEMENT` DROP IF EXISTS `SECURITY_PROTOCOL`;
-- AIRAVATA-3029: Add METADATA to APPLICATION_OUTPUT
ALTER TABLE `APPLICATION_OUTPUT` ADD COLUMN IF NOT EXISTS METADATA VARCHAR(4096);
-- AIRAVATA-3268: add overrideFilename to APPLICATION_INPUT
ALTER TABLE APPLICATION_INPUT ADD COLUMN IF NOT EXISTS OVERRIDE_FILENAME VARCHAR(255);
update APPLICATION_INPUT set OVERRIDE_FILENAME = INPUT_VALUE where OVERRIDE_FILENAME is null and DATA_TYPE = 'URI' and INPUT_VALUE is not null and INPUT_VALUE != '';
-- AIRAVATA-3126
CREATE TABLE IF NOT EXISTS COMPUTE_RESOURCE_RESERVATION -- ComputeResourceReservationEntity
(RESERVATION_ID VARCHAR(255) NOT NULL, END_TIME TIMESTAMP NOT NULL DEFAULT 0, RESERVATION_NAME VARCHAR(255) NOT NULL, START_TIME TIMESTAMP NOT NULL DEFAULT 0, RESOURCE_ID VARCHAR(255) NOT NULL, GROUP_RESOURCE_PROFILE_ID VARCHAR(255) NOT NULL, PRIMARY KEY (RESERVATION_ID)
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS COMPUTE_RESOURCE_RESERVATION_QUEUE (RESERVATION_ID VARCHAR(255), QUEUE_NAME VARCHAR(255) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE INDEX IF NOT EXISTS I_CMPTN_Q_RESERVATION_ID ON COMPUTE_RESOURCE_RESERVATION_QUEUE (RESERVATION_ID);
ALTER TABLE COMPUTE_RESOURCE_RESERVATION ADD CONSTRAINT FK_COMPUTE_RESOURCE_RESERVATION FOREIGN KEY IF NOT EXISTS (RESOURCE_ID, GROUP_RESOURCE_PROFILE_ID) REFERENCES GROUP_COMPUTE_RESOURCE_PREFERENCE (RESOURCE_ID, GROUP_RESOURCE_PROFILE_ID) ON DELETE CASCADE;
-- AIRAVATA-3276 Replace JSON configuration: "toggle": ["isRequired"] ->
-- "isRequired": true. Toggling requiredToAddedToCommandLine no longer needed.
-- replace toggle with is isRequired
update APPLICATION_INPUT
set METADATA = REGEXP_REPLACE(METADATA, '"toggle": \\[[^}]+\\]', CONCAT('"isRequired": ', IF(IS_REQUIRED=1, 'true', 'false')))
-- showOptions has "toggle" but not "isRequired"
where METADATA rlike '"showOptions": {"toggle": \\[[^}]+\\]'
and NOT METADATA rlike '"showOptions": {.*"isRequired": (true|false)'
;
-- remove toggle since isRequired is already there
update APPLICATION_INPUT
set METADATA = REGEXP_REPLACE(METADATA, '(, )?"toggle": \\[[^}]+\\](, )?', '')
-- showOptions has BOTH "toggle" and "isRequired"
where METADATA rlike '"showOptions": {"toggle": \\[[^}]+\\]'
and METADATA rlike '"showOptions": {.*"isRequired": (true|false)'
;