From bdf3b294a52eb77cd0c85a4484f110613ff67c77 Mon Sep 17 00:00:00 2001 From: Michael Calmer Date: Mon, 14 Oct 2024 11:49:45 +0200 Subject: [PATCH 1/2] initial DB schema for ISSv3 --- schema/spacewalk/common/tables/suseISSHub.sql | 25 ++++++++++++++++ .../common/tables/suseISSPeripheral.sql | 26 ++++++++++++++++ .../tables/suseISSPeripheralChannels.sql | 30 +++++++++++++++++++ schema/spacewalk/common/tables/tables.deps | 3 ++ 4 files changed, 84 insertions(+) create mode 100644 schema/spacewalk/common/tables/suseISSHub.sql create mode 100644 schema/spacewalk/common/tables/suseISSPeripheral.sql create mode 100644 schema/spacewalk/common/tables/suseISSPeripheralChannels.sql diff --git a/schema/spacewalk/common/tables/suseISSHub.sql b/schema/spacewalk/common/tables/suseISSHub.sql new file mode 100644 index 000000000000..8d115ed2f1de --- /dev/null +++ b/schema/spacewalk/common/tables/suseISSHub.sql @@ -0,0 +1,25 @@ +-- +-- Copyright (c) 2024 SUSE LLC +-- +-- This software is licensed to you under the GNU General Public License, +-- version 2 (GPLv2). There is NO WARRANTY for this software, express or +-- implied, including the implied warranties of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 +-- along with this software; if not, see +-- http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + +CREATE TABLE suseISSHub +( + id BIGINT CONSTRAINT suse_iss_hub_id_pk PRIMARY KEY + GENERATED ALWAYS AS IDENTITY, + fqdn VARCHAR(253) NOT NULL + CONSTRAINT suse_iss_hub_fqdn_uq UNIQUE, + root_ca TEXT, + mirror_creds_id NUMERIC NULL + CONSTRAINT suse_iss_hub_mirrcreds_fk + REFERENCES suseCredentials (id) ON DELETE SET NULL, + created TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL, + modified TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL +); diff --git a/schema/spacewalk/common/tables/suseISSPeripheral.sql b/schema/spacewalk/common/tables/suseISSPeripheral.sql new file mode 100644 index 000000000000..75e45f629b66 --- /dev/null +++ b/schema/spacewalk/common/tables/suseISSPeripheral.sql @@ -0,0 +1,26 @@ +-- +-- Copyright (c) 2024 SUSE LLC +-- +-- This software is licensed to you under the GNU General Public License, +-- version 2 (GPLv2). There is NO WARRANTY for this software, express or +-- implied, including the implied warranties of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 +-- along with this software; if not, see +-- http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. +-- + +CREATE TABLE suseISSPeripheral +( + id BIGINT CONSTRAINT suse_issper_id_pk PRIMARY KEY + GENERATED ALWAYS AS IDENTITY, + fqdn VARCHAR(253) NOT NULL + CONSTRAINT suse_issper_fqdn_uq UNIQUE, + root_ca TEXT, + mirror_creds_id NUMERIC NULL + CONSTRAINT suse_issper_mirrcreds_fk + REFERENCES suseCredentials (id) ON DELETE SET NULL, + created TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL, + modified TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL +); diff --git a/schema/spacewalk/common/tables/suseISSPeripheralChannels.sql b/schema/spacewalk/common/tables/suseISSPeripheralChannels.sql new file mode 100644 index 000000000000..3db3c208fd2d --- /dev/null +++ b/schema/spacewalk/common/tables/suseISSPeripheralChannels.sql @@ -0,0 +1,30 @@ +-- +-- Copyright (c) 2024 SUSE LLC +-- +-- This software is licensed to you under the GNU General Public License, +-- version 2 (GPLv2). There is NO WARRANTY for this software, express or +-- implied, including the implied warranties of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 +-- along with this software; if not, see +-- http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. +-- + +CREATE TABLE suseISSPeripheralChannels +( + id BIGINT CONSTRAINT suse_issperchan_id_pk PRIMARY KEY + GENERATED ALWAYS AS IDENTITY, + peripheral_id BIGINT NOT NULL + CONSTRAINT suse_issperchan_pid_fk + REFERENCES suseISSPeripheral(id) ON DELETE CASCADE, + channel_id NUMERIC NOT NULL + CONSTRAINT suse_issperchan_cid_fk + REFERENCES rhnChannel(id) ON DELETE CASCADE, + peripheral_org_id INTEGER NULL, + created TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL, + modified TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL +); + +CREATE UNIQUE INDEX use_issperchan_pid_cid_uq +ON suseISSPeripheralChannels (peripheral_id, channel_id); diff --git a/schema/spacewalk/common/tables/tables.deps b/schema/spacewalk/common/tables/tables.deps index 0f91014a8a5d..07310ff5ac81 100644 --- a/schema/spacewalk/common/tables/tables.deps +++ b/schema/spacewalk/common/tables/tables.deps @@ -242,6 +242,9 @@ suseImageInfoChannel :: suseImageInfo rhnChannel suseImageInfoInstalledProduct :: suseInstalledProduct suseImageInfo suseImageProfile :: rhnRegTokenChannels web_customer suseImageStore suseImageStore :: suseCredentials web_customer suseImageStoreType +suseISSHub :: suseCredentials +suseISSPeripheral :: suseCredentials +suseISSPeripheralChannels :: suseISSPeripheral rhnChannel suseMaintenanceCalendar :: web_customer suseMaintenanceSchedule :: web_customer suseMaintenanceCalendar suseMgrServerInfo :: rhnServer rhnPackageEVR suseCredentials From d253a8159d3ab5abd1a96a0a5834ba618af4220f Mon Sep 17 00:00:00 2001 From: Michael Calmer Date: Mon, 14 Oct 2024 11:57:06 +0200 Subject: [PATCH 2/2] ISSv3 DB schema migration --- .../001-issv3-add-tables.sql | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 schema/spacewalk/upgrade/susemanager-schema-5.1.1-to-susemanager-schema-5.1.2/001-issv3-add-tables.sql diff --git a/schema/spacewalk/upgrade/susemanager-schema-5.1.1-to-susemanager-schema-5.1.2/001-issv3-add-tables.sql b/schema/spacewalk/upgrade/susemanager-schema-5.1.1-to-susemanager-schema-5.1.2/001-issv3-add-tables.sql new file mode 100644 index 000000000000..e248c2fd5b5c --- /dev/null +++ b/schema/spacewalk/upgrade/susemanager-schema-5.1.1-to-susemanager-schema-5.1.2/001-issv3-add-tables.sql @@ -0,0 +1,61 @@ +-- +-- Copyright (c) 2024 SUSE LLC +-- +-- This software is licensed to you under the GNU General Public License, +-- version 2 (GPLv2). There is NO WARRANTY for this software, express or +-- implied, including the implied warranties of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 +-- along with this software; if not, see +-- http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. + +CREATE TABLE IF NOT EXISTS suseISSHub +( + id BIGINT CONSTRAINT suse_iss_hub_id_pk PRIMARY KEY + GENERATED ALWAYS AS IDENTITY, + fqdn VARCHAR(253) NOT NULL + CONSTRAINT suse_iss_hub_fqdn_uq UNIQUE, + root_ca TEXT, + mirror_creds_id NUMERIC NULL + CONSTRAINT suse_iss_hub_mirrcreds_fk + REFERENCES suseCredentials (id) ON DELETE SET NULL, + created TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL, + modified TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL +); + +CREATE TABLE IF NOT EXISTS suseISSPeripheral +( + id BIGINT CONSTRAINT suse_issper_id_pk PRIMARY KEY + GENERATED ALWAYS AS IDENTITY, + fqdn VARCHAR(253) NOT NULL + CONSTRAINT suse_issper_fqdn_uq UNIQUE, + root_ca TEXT, + mirror_creds_id NUMERIC NULL + CONSTRAINT suse_issper_mirrcreds_fk + REFERENCES suseCredentials (id) ON DELETE SET NULL, + created TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL, + modified TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL +); + +CREATE TABLE IF NOT EXISTS suseISSPeripheralChannels +( + id BIGINT CONSTRAINT suse_issperchan_id_pk PRIMARY KEY + GENERATED ALWAYS AS IDENTITY, + peripheral_id BIGINT NOT NULL + CONSTRAINT suse_issperchan_pid_fk + REFERENCES suseISSPeripheral(id) ON DELETE CASCADE, + channel_id NUMERIC NOT NULL + CONSTRAINT suse_issperchan_cid_fk + REFERENCES rhnChannel(id) ON DELETE CASCADE, + peripheral_org_id INTEGER NULL, + created TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL, + modified TIMESTAMPTZ + DEFAULT (current_timestamp) NOT NULL +); + +CREATE UNIQUE INDEX IF NOT EXISTS suse_issperchan_pid_cid_uq +ON suseISSPeripheralChannels (peripheral_id, channel_id);