blob: 21a365530a5f77b23c87ba79ded0734db8d1e34e [file] [log] [blame]
ALTER TABLE triggerable_configurations ADD COLUMN IF NOT EXISTS trigconfig_id serial PRIMARY KEY;
ALTER TYPE analysis_test_group_repetition_type ADD VALUE IF NOT EXISTS 'paired-parallel';
DO $$
BEGIN
IF NOT EXISTS (SELECT NULL FROM pg_type WHERE typname = 'analysis_test_group_repetition_type') THEN
CREATE TYPE analysis_test_group_repetition_type as ENUM ('alternating', 'sequential', 'paired-parallel');
END IF;
ALTER TABLE build_requests ADD COLUMN IF NOT EXISTS request_status_description varchar(1024) DEFAULT NULL;
ALTER TABLE platforms ADD COLUMN IF NOT EXISTS platform_group integer REFERENCES platform_groups DEFAULT NULL;
ALTER TABLE commits ADD COLUMN IF NOT EXISTS commit_revision_identifier varchar(64) DEFAULT NULL;
ALTER TABLE analysis_test_groups ADD COLUMN IF NOT EXISTS testgroup_repetition_type analysis_test_group_repetition_type NOT NULL DEFAULT 'alternating';
ALTER TABLE commits DROP CONSTRAINT IF EXISTS commit_string_identifier_in_repository_must_be_unique;
ALTER TABLE commits ADD CONSTRAINT commit_string_identifier_in_repository_must_be_unique UNIQUE(commit_repository, commit_revision_identifier);
IF EXISTS (SELECT NULL FROM information_schema.columns WHERE TABLE_NAME = 'commits' AND COLUMN_NAME = 'commit_order' AND DATA_TYPE = 'integer') THEN
ALTER TABLE commits ALTER commit_order TYPE bigint;
END IF;
CREATE TABLE IF NOT EXISTS platform_groups (
platformgroup_id serial PRIMARY KEY,
platformgroup_name varchar(64) NOT NULL,
CONSTRAINT platform_group_name_must_be_unique UNIQUE (platformgroup_name));
IF NOT EXISTS (SELECT NULL FROM information_schema.tables WHERE TABLE_NAME = 'triggerable_configuration_repetition_types') THEN
CREATE TABLE triggerable_configuration_repetition_types (
configrepetition_config INTEGER NOT NULL REFERENCES triggerable_configurations ON DELETE CASCADE,
configrepetition_type analysis_test_group_repetition_type NOT NULL,
PRIMARY KEY (configrepetition_config, configrepetition_type));
INSERT INTO triggerable_configuration_repetition_types (configrepetition_config, configrepetition_type)
SELECT trigconfig_id, 'alternating' FROM triggerable_configurations;
INSERT INTO triggerable_configuration_repetition_types (configrepetition_config, configrepetition_type)
SELECT trigconfig_id, 'sequential' FROM triggerable_configurations;
END IF;
ALTER TABLE platforms ADD COLUMN IF NOT EXISTS platform_group integer REFERENCES platform_groups DEFAULT NULL;
IF EXISTS (SELECT NULL FROM information_schema.columns WHERE TABLE_NAME = 'builds' AND COLUMN_NAME = 'build_number') THEN
ALTER TABLE builds ALTER build_number TYPE varchar(64);
ALTER TABLE builds RENAME build_number TO build_tag;
ALTER TABLE builds DROP CONSTRAINT builder_build_time_tuple_must_be_unique;
ALTER TABLE builds ADD CONSTRAINT builder_build_time_tuple_must_be_unique UNIQUE(build_builder, build_tag, build_time);
END IF;
IF EXISTS (SELECT NULL FROM information_schema.columns WHERE TABLE_NAME = 'builds' AND COLUMN_NAME = 'build_slave') THEN
ALTER TABLE builds RENAME build_slave TO build_worker;
END IF;
IF EXISTS (SELECT NULL FROM information_schema.columns WHERE TABLE_NAME = 'reports' AND COLUMN_NAME = 'report_slave') THEN
ALTER TABLE reports RENAME report_slave TO report_worker;
END IF;
IF EXISTS (SELECT NULL FROM information_schema.columns WHERE TABLE_NAME = 'build_slaves') THEN
ALTER TABLE build_slaves RENAME slave_id TO worker_id;
ALTER TABLE build_slaves RENAME slave_name TO worker_name;
ALTER TABLE build_slaves RENAME slave_password_hash TO worker_password_hash;
ALTER TABLE build_slaves RENAME TO build_workers;
END IF;
END$$;