From f6c07111d33f4e82bf96f111d8dec820b4bfb23b Mon Sep 17 00:00:00 2001 From: Noah Hilverling Date: Wed, 17 Jul 2019 15:21:51 +0200 Subject: [PATCH] Replace combined primary keys with ids --- etc/schema/mysql/command.sql | 3 ++- etc/schema/mysql/host.sql | 6 ++++-- etc/schema/mysql/notification.sql | 9 ++++++--- etc/schema/mysql/service.sql | 9 ++++++--- etc/schema/mysql/timeperiod.sql | 13 +++++++++---- etc/schema/mysql/user.sql | 9 ++++++--- 6 files changed, 33 insertions(+), 16 deletions(-) diff --git a/etc/schema/mysql/command.sql b/etc/schema/mysql/command.sql index 604a9460..dc8b5e18 100644 --- a/etc/schema/mysql/command.sql +++ b/etc/schema/mysql/command.sql @@ -53,10 +53,11 @@ CREATE TABLE command_envvar ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE command_customvar ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + command_id + customvar_id)', command_id binary(20) NOT NULL COMMENT 'command.id', customvar_id binary(20) NOT NULL COMMENT 'customvar.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (customvar_id, command_id) + PRIMARY KEY (id) ) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin; /* TODO(el): Default custom variables are missing */ diff --git a/etc/schema/mysql/host.sql b/etc/schema/mysql/host.sql index 7588fe1c..045cf681 100644 --- a/etc/schema/mysql/host.sql +++ b/etc/schema/mysql/host.sql @@ -81,11 +81,12 @@ CREATE TABLE hostgroup ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE hostgroup_member ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + host_id + hostgroup_id)', host_id binary(20) NOT NULL COMMENT 'host.id', hostgroup_id binary(20) NOT NULL COMMENT 'hostgroup.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (hostgroup_id,host_id) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE host_customvar ( @@ -98,11 +99,12 @@ CREATE TABLE host_customvar ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE hostgroup_customvar ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + hostgroup_id + customvar_id)', hostgroup_id binary(20) NOT NULL COMMENT 'hostgroup.id', customvar_id binary(20) NOT NULL COMMENT 'customvar.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (customvar_id, hostgroup_id) + PRIMARY KEY (id) ) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin; CREATE TABLE host_state ( diff --git a/etc/schema/mysql/notification.sql b/etc/schema/mysql/notification.sql index 3ed56e24..752a6174 100644 --- a/etc/schema/mysql/notification.sql +++ b/etc/schema/mysql/notification.sql @@ -31,24 +31,27 @@ CREATE TABLE notification ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE notification_user ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + notification_id + user_id)', notification_id binary(20) NOT NULL COMMENT 'notification.id', user_id binary(20) NOT NULL COMMENT 'user.id', env_id binary(20) NOT NULL COMMENT 'environment.id', - PRIMARY KEY (notification_id,user_id) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE notification_usergroup ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + notification_id + usergroup_id)', notification_id binary(20) NOT NULL COMMENT 'notification.id', usergroup_id binary(20) NOT NULL COMMENT 'usergroup.id', env_id binary(20) NOT NULL COMMENT 'environment.id', - PRIMARY KEY (notification_id, usergroup_id) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE notification_customvar ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + notification_id + customvar_id)', notification_id binary(20) NOT NULL COMMENT 'notification.id', customvar_id binary(20) NOT NULL COMMENT 'customvar.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (customvar_id, notification_id) + PRIMARY KEY (id) ) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin; diff --git a/etc/schema/mysql/service.sql b/etc/schema/mysql/service.sql index f83224f0..ef5ef25d 100644 --- a/etc/schema/mysql/service.sql +++ b/etc/schema/mysql/service.sql @@ -74,27 +74,30 @@ CREATE TABLE servicegroup ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE servicegroup_member ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + servicegroup_id + service_id)', service_id binary(20) NOT NULL COMMENT 'service.id', servicegroup_id binary(20) NOT NULL COMMENT 'servicegroup.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (servicegroup_id,service_id) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE service_customvar ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + service_id + customvar_id)', service_id binary(20) NOT NULL COMMENT 'service.id', customvar_id binary(20) NOT NULL COMMENT 'customvar.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (customvar_id, service_id) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE servicegroup_customvar ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + servicegroup_id + customvar_id)', servicegroup_id binary(20) NOT NULL COMMENT 'servicegroup.id', customvar_id binary(20) NOT NULL COMMENT 'customvar.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (customvar_id, servicegroup_id) + PRIMARY KEY (id) ) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin; CREATE TABLE service_state ( diff --git a/etc/schema/mysql/timeperiod.sql b/etc/schema/mysql/timeperiod.sql index 2eab4bc6..f5f9f193 100644 --- a/etc/schema/mysql/timeperiod.sql +++ b/etc/schema/mysql/timeperiod.sql @@ -23,34 +23,39 @@ CREATE TABLE timeperiod ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE timeperiod_range ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + range_id + timeperiod_id)', timeperiod_id binary(20) NOT NULL COMMENT 'timeperiod.id', range_key varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, env_id binary(20) NOT NULL COMMENT 'env.id', range_value varchar(255) NOT NULL, - PRIMARY KEY (timeperiod_id,range_key) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE timeperiod_override_include ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + include_id + timeperiod_id)', timeperiod_id binary(20) NOT NULL COMMENT 'timeperiod.id', override_id binary(20) NOT NULL COMMENT 'timeperiod.id', env_id binary(20) NOT NULL COMMENT 'env.id', - PRIMARY KEY (timeperiod_id,override_id) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE timeperiod_override_exclude ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + exclude_id + timeperiod_id)', timeperiod_id binary(20) NOT NULL COMMENT 'timeperiod.id', override_id binary(20) NOT NULL COMMENT 'timeperiod.id', env_id binary(20) NOT NULL COMMENT 'env.id', - PRIMARY KEY (timeperiod_id,override_id) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE timeperiod_customvar ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + timeperiod_id + customvar_id)', timeperiod_id binary(20) NOT NULL COMMENT 'timeperiod.id', customvar_id binary(20) NOT NULL COMMENT 'customvar.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (customvar_id, timeperiod_id) + + PRIMARY KEY (id) ) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin; \ No newline at end of file diff --git a/etc/schema/mysql/user.sql b/etc/schema/mysql/user.sql index 343bfa1a..315c264d 100644 --- a/etc/schema/mysql/user.sql +++ b/etc/schema/mysql/user.sql @@ -45,23 +45,26 @@ CREATE TABLE usergroup ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE usergroup_member ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + usergroup_id + user_id)', user_id binary(20) NOT NULL COMMENT 'user.id', usergroup_id binary(20) NOT NULL COMMENT 'usergroup.id', env_id binary(20) NOT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (user_id,usergroup_id) + PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; CREATE TABLE user_customvar ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + user_id + customvar_id)', user_id binary(20) NOT NULL COMMENT 'user.id', customvar_id binary(20) NOT NULL COMMENT 'customvar.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (customvar_id, user_id) + PRIMARY KEY (id) ) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin; CREATE TABLE usergroup_customvar ( + id binary(20) NOT NULL COMMENT 'sha1(environment.name + usergroup_id + customvar_id)', usergroup_id binary(20) NOT NULL COMMENT 'usergroup.id', customvar_id binary(20) NOT NULL COMMENT 'customvar.id', env_id binary(20) DEFAULT NULL COMMENT 'sha1(environment.name)', - PRIMARY KEY (customvar_id, usergroup_id) + PRIMARY KEY (id) ) ENGINE=InnoDb ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_bin; \ No newline at end of file