From c03b788fcc76366273d65ba2d608ca8c1383a0c0 Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Mon, 2 Feb 2026 14:59:00 +0200 Subject: [PATCH 1/4] Add baselines for hawkbit 1.0 Signed-off-by: Avgustin Marinov --- .../postgres/docker-compose-deps-postgres.yml | 7 +- docs/quick-start.md | 14 +- .../H2/B1_20_0__1.0.0_baseline__H2.sql | 553 +++++++++++ .../MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql | 660 +++++++++++++ .../B1_20_0__1.0.0_baseline__POSTGRESQL.sql | 892 ++++++++++++++++++ ..._35__sm_type_min_artifacts__POSTGRESQL.sql | 2 +- 6 files changed, 2122 insertions(+), 6 deletions(-) create mode 100644 hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql create mode 100644 hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql create mode 100644 hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql diff --git a/docker/postgres/docker-compose-deps-postgres.yml b/docker/postgres/docker-compose-deps-postgres.yml index 62975d1499..9e9bd23b9f 100644 --- a/docker/postgres/docker-compose-deps-postgres.yml +++ b/docker/postgres/docker-compose-deps-postgres.yml @@ -21,11 +21,11 @@ services: restart_policy: condition: on-failure environment: + POSTGRES_DB: "hawkbit" POSTGRES_USER: "postgres" POSTGRES_PASSWORD: "admin" - POSTGRES_DB: "hawkbit" healthcheck: - test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"] + test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB:-hawkbit} -U ${POSTGRES_USER:-postgres}"] interval: 20s retries: 10 @@ -44,5 +44,4 @@ services: - "5672:5672" deploy: restart_policy: - condition: on-failure - + condition: on-failure \ No newline at end of file diff --git a/docs/quick-start.md b/docs/quick-start.md index 809cd4298b..d0284b5510 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -123,7 +123,7 @@ $ mvn clean install -DskipTests $ java -jar ./hawkbit-monolith/hawkbit-update-server/target/hawkbit-update-server-0-SNAPSHOT.jar ``` -> **Note:** you could start it also in **microservices mode** by: +**Note:** you could start it also in **microservices mode** by: ```bash $ java -jar ./hawkbit-mgmt/hawkbit-mgmt-server/target/hawkbit-mgmt-server-0-SNAPSHOT.jar @@ -137,6 +137,18 @@ And (only if you want to use the DMF feature): $ java -jar ./hawkbit-monolith/hawkbit-update-server/target/hawkbit-update-server-0-SNAPSHOT.jar ``` +**Note:** You could also start with H2 console enabled with: +```bash +$java -jar ./hawkbit-monolith/hawkbit-update-server/target/hawkbit-update-server-0-SNAPSHOT.jar --spring.h2.console.enabled=true --spring.h2.console.path=/h2-console +``` +for monolith, and: +```bash +$java -jar ./hawkbit-mgmt/hawkbit-mgmt-server/target/hawkbit-mgmt-server-0-SNAPSHOT.jar --spring.h2.console.enabled=true --spring.h2.console.path=/h2-console +``` +for mgmt server in micro-service mode. + +Then you will get H2 console available at '/h2-console' (Database available at 'jdbc:h2:mem:hawkbit') + You could also start the **hawkBit UI** by: ```bash diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql new file mode 100644 index 0000000000..b7a3776f80 --- /dev/null +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql @@ -0,0 +1,553 @@ +-- hawkbit 1.0.0 H2 database migration script baseline -- +CREATE TABLE sp_target_conf_status +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + target BIGINT NOT NULL, + initiator VARCHAR(64), + remark VARCHAR(512), + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_target_type +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + type_key VARCHAR(64) DEFAULT '_' NOT NULL, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant NULLS FIRST, id NULLS FIRST); + +CREATE TABLE sp_action_status +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + target_occurred_at BIGINT NOT NULL, + status INTEGER NOT NULL, + action BIGINT NOT NULL, + code INTEGER, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant NULLS FIRST, action NULLS FIRST, status NULLS FIRST); +CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant NULLS FIRST, code NULLS FIRST); + +CREATE TABLE sp_distribution_set_type +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant NULLS FIRST, deleted NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant NULLS FIRST, id NULLS FIRST); + +CREATE TABLE sp_distribution_set_tag +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant NULLS FIRST, name NULLS FIRST); + +CREATE TABLE sp_ds_tag +( + ds BIGINT NOT NULL, + tag BIGINT NOT NULL, + PRIMARY KEY (ds, tag) +); + +CREATE TABLE sp_ds_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + ds BIGINT NOT NULL, + PRIMARY KEY (ds, meta_key) +); + +CREATE TABLE sp_ds_sm +( + ds_id BIGINT NOT NULL, + sm_id BIGINT NOT NULL, + PRIMARY KEY (ds_id, sm_id) +); + +CREATE TABLE sp_ds_type_element +( + mandatory BOOLEAN, + distribution_set_type BIGINT NOT NULL, + software_module_type BIGINT NOT NULL, + PRIMARY KEY (distribution_set_type, software_module_type) +); + +CREATE TABLE sp_action +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + active BOOLEAN, + forced_time BIGINT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT, + rollout_group BIGINT, + action_type INTEGER NOT NULL, + maintenance_cron_schedule VARCHAR(40), + maintenance_duration VARCHAR(40), + maintenance_time_zone VARCHAR(40), + external_ref VARCHAR(512), + weight INTEGER NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INTEGER, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_action_01 ON sp_action (tenant NULLS FIRST, distribution_set NULLS FIRST); +CREATE INDEX sp_idx_action_02 ON sp_action (tenant NULLS FIRST, target NULLS FIRST, active NULLS FIRST); +CREATE INDEX sp_idx_action_prim ON sp_action (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref NULLS FIRST); + +CREATE TABLE sp_target_type_ds_type +( + target_type BIGINT NOT NULL, + distribution_set_type BIGINT NOT NULL, + PRIMARY KEY (target_type, distribution_set_type) +); + +CREATE TABLE sp_distribution_set +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + version VARCHAR(64) NOT NULL, + deleted BOOLEAN, + required_migration_step BOOLEAN, + ds_type BIGINT NOT NULL, + valid BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant NULLS FIRST, deleted NULLS FIRST); + +CREATE TABLE sp_action_status_messages +( + action_status BIGINT NOT NULL, + detail_message VARCHAR(512) NOT NULL +); +CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status NULLS FIRST); + +CREATE TABLE sp_artifact +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + md5_hash VARCHAR(32), + file_size BIGINT, + provided_file_name VARCHAR(256), + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64), + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant NULLS FIRST, software_module NULLS FIRST); +CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant NULLS FIRST, sha1_hash NULLS FIRST); + +CREATE TABLE sp_rollout +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + last_check BIGINT, + group_theshold FLOAT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target_filter VARCHAR(1024), + forced_time BIGINT, + total_targets BIGINT, + rollout_groups_created BIGINT, + start_at BIGINT, + deleted BOOLEAN, + action_type INTEGER NOT NULL, + approval_decided_by VARCHAR(64), + approval_remark VARCHAR(255), + weight INTEGER NOT NULL, + access_control_context VARCHAR(4096), + is_dynamic BOOLEAN, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant NULLS FIRST, status NULLS FIRST); + +CREATE TABLE sp_target_tag +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant NULLS FIRST, name NULLS FIRST); + +CREATE TABLE sp_target_target_tag +( + target BIGINT NOT NULL, + tag BIGINT NOT NULL, + PRIMARY KEY (target, tag) +); + +CREATE TABLE sp_tenant +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + default_ds_type BIGINT NOT NULL, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant NULLS FIRST, id NULLS FIRST); + +CREATE TABLE sp_tenant_configuration +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_target_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + target BIGINT NOT NULL, + PRIMARY KEY (target, meta_key) +); + +CREATE TABLE sp_target_filter_query +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + name VARCHAR(128) NOT NULL, + query VARCHAR(1024) NOT NULL, + auto_assign_distribution_set BIGINT, + auto_assign_action_type INTEGER, + auto_assign_weight INTEGER NOT NULL, + auto_assign_initiated_by VARCHAR(64), + confirmation_required BOOLEAN, + access_control_context VARCHAR(4096), + PRIMARY KEY (id) +); + +CREATE TABLE sp_sm_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + sm BIGINT NOT NULL, + target_visible BOOLEAN, + PRIMARY KEY (meta_key, sm) +); + +CREATE TABLE sp_rollout_group +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + error_condition INTEGER, + error_condition_exp VARCHAR(512), + error_action INTEGER, + error_action_exp VARCHAR(512), + success_condition INTEGER NOT NULL, + success_condition_exp VARCHAR(512) NOT NULL, + success_action INTEGER NOT NULL, + success_action_exp VARCHAR(512), + status INTEGER NOT NULL, + parent BIGINT, + rollout BIGINT NOT NULL, + total_targets BIGINT, + target_percentage FLOAT, + target_filter VARCHAR(1024), + confirmation_required BOOLEAN, + is_dynamic BOOLEAN DEFAULT FALSE NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_software_module_type +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INTEGER NOT NULL, + min_artifacts INTEGER DEFAULT 0 NOT NULL, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant NULLS FIRST, deleted NULLS FIRST); +CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant NULLS FIRST, id NULLS FIRST); + +CREATE TABLE sp_lock +( + lock_key CHAR(36) NOT NULL, + region VARCHAR(100) NOT NULL, + client_id CHAR(36), + created_date TIMESTAMP NOT NULL, + PRIMARY KEY (lock_key, region) +); + +CREATE TABLE sp_target_attributes +( + target BIGINT NOT NULL, + attribute_value VARCHAR(128), + attribute_key VARCHAR(128) NOT NULL, + PRIMARY KEY (target, attribute_key) +); + +CREATE TABLE sp_target +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + controller_id VARCHAR(256) NOT NULL, + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT, + install_date BIGINT, + address VARCHAR(512), + last_target_query BIGINT, + request_controller_attributes BOOLEAN NOT NULL, + installed_distribution_set BIGINT, + update_status INTEGER NOT NULL, + target_type BIGINT, + target_group VARCHAR(256), + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_target_01 ON sp_target (tenant NULLS FIRST, name NULLS FIRST, assigned_distribution_set NULLS FIRST); +CREATE INDEX sp_idx_target_03 ON sp_target (tenant NULLS FIRST, controller_id NULLS FIRST, assigned_distribution_set NULLS FIRST); +CREATE INDEX sp_idx_target_04 ON sp_target (tenant NULLS FIRST, created_at NULLS FIRST); +CREATE INDEX sp_idx_target_prim ON sp_target (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_target_05 ON sp_target (tenant NULLS FIRST, last_modified_at NULLS FIRST); +CREATE INDEX sp_idx_target_group ON sp_target (tenant NULLS FIRST, target_group NULLS FIRST); + +CREATE TABLE sp_software_module +( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + version VARCHAR(64) NOT NULL, + deleted BOOLEAN, + vendor VARCHAR(256), + sm_type BIGINT NOT NULL, + encrypted BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant NULLS FIRST, deleted NULLS FIRST, name NULLS FIRST, version NULLS FIRST); +CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant NULLS FIRST, deleted NULLS FIRST, sm_type NULLS FIRST); +CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant NULLS FIRST, id NULLS FIRST); + +CREATE TABLE sp_rollout_target_group +( + target BIGINT NOT NULL, + rollout_group BIGINT NOT NULL, + PRIMARY KEY (rollout_group, target) +); + +ALTER TABLE sp_distribution_set_tag + ADD CONSTRAINT uk_distribution_set_tag UNIQUE NULLS DISTINCT (name, tenant); +ALTER TABLE sp_software_module + ADD CONSTRAINT uk_software_module UNIQUE NULLS DISTINCT (sm_type, name, version, tenant); +ALTER TABLE sp_target_type + ADD CONSTRAINT uk_target_type_key UNIQUE NULLS DISTINCT (type_key, tenant); +ALTER TABLE sp_software_module_type + ADD CONSTRAINT uk_software_module_type_type_key UNIQUE NULLS DISTINCT (type_key, tenant); +ALTER TABLE sp_target_type + ADD CONSTRAINT uk_target_name UNIQUE NULLS DISTINCT (name, tenant); +ALTER TABLE sp_tenant + ADD CONSTRAINT uk_tenant UNIQUE NULLS DISTINCT (tenant); +ALTER TABLE sp_target_filter_query + ADD CONSTRAINT uk_target_filter_query UNIQUE NULLS DISTINCT (name, tenant); +ALTER TABLE sp_distribution_set + ADD CONSTRAINT uk_distribution_set UNIQUE NULLS DISTINCT (tenant, name, version, ds_type); +ALTER TABLE sp_rollout + ADD CONSTRAINT uk_rollout UNIQUE NULLS DISTINCT (name, tenant); +ALTER TABLE sp_tenant_configuration + ADD CONSTRAINT uk_tenant_configuration UNIQUE NULLS DISTINCT (conf_key, tenant); +ALTER TABLE sp_distribution_set_type + ADD CONSTRAINT uk_distribution_set_type_name UNIQUE NULLS DISTINCT (name, tenant); +ALTER TABLE sp_rollout_group + ADD CONSTRAINT uk_rollout_group UNIQUE NULLS DISTINCT (name, rollout, tenant); +ALTER TABLE sp_distribution_set_type + ADD CONSTRAINT uk_distribution_set_type_type_key UNIQUE NULLS DISTINCT (type_key, tenant); +ALTER TABLE sp_software_module_type + ADD CONSTRAINT uk_software_module_type_name UNIQUE NULLS DISTINCT (name, tenant); +ALTER TABLE sp_target + ADD CONSTRAINT uk_target_controller_id UNIQUE NULLS DISTINCT (controller_id, tenant); +ALTER TABLE sp_target_tag + ADD CONSTRAINT uk_target_tag UNIQUE NULLS DISTINCT (name, tenant); +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_action_status + ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) NOCHECK; +ALTER TABLE sp_rollout_group + ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_rollout_target_group + ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_rollout_target_group + ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_target_filter_query + ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL NOCHECK; +ALTER TABLE sp_artifact + ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_action_status_messages + ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_distribution_set + ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id) NOCHECK; +ALTER TABLE sp_rollout + ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_target_conf_status + ADD CONSTRAINT fk_target_conf_status_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_software_module + ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id) NOCHECK; +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; +ALTER TABLE sp_target_metadata + ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_tenant + ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id) NOCHECK; +ALTER TABLE sp_ds_metadata + ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_sm_metadata + ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) NOCHECK; +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; +ALTER TABLE sp_target_attributes + ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL NOCHECK; \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql new file mode 100644 index 0000000000..656e0bc299 --- /dev/null +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql @@ -0,0 +1,660 @@ +CREATE TABLE SP_LOCK +( + LOCK_KEY CHAR(36) NOT NULL, + REGION VARCHAR(100) NOT NULL, + CLIENT_ID CHAR(36) DEFAULT NULL, + CREATED_DATE DATETIME(6) NOT NULL, + PRIMARY KEY (LOCK_KEY, REGION) +); + +CREATE TABLE sp_action +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + active BIT(1) DEFAULT NULL, + forced_time BIGINT DEFAULT NULL, + status INT NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT DEFAULT NULL, + rollout_group BIGINT DEFAULT NULL, + action_type INT NOT NULL, + maintenance_cron_schedule VARCHAR(40) DEFAULT NULL, + maintenance_duration VARCHAR(40) DEFAULT NULL, + maintenance_time_zone VARCHAR(40) DEFAULT NULL, + external_ref VARCHAR(512) DEFAULT NULL, + weight INT NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INT DEFAULT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_action_status +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + target_occurred_at BIGINT NOT NULL, + status INT NOT NULL, + action BIGINT NOT NULL, + code INT DEFAULT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_action_status_messages +( + action_status BIGINT NOT NULL, + detail_message VARCHAR(512) NOT NULL +); + +CREATE TABLE sp_artifact +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + md5_hash VARCHAR(32) DEFAULT NULL, + file_size BIGINT DEFAULT NULL, + provided_file_name VARCHAR(256) DEFAULT NULL, + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64) DEFAULT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_distribution_set +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + version VARCHAR(64) NOT NULL, + deleted BIT(1) DEFAULT NULL, + required_migration_step BIT(1) DEFAULT NULL, + ds_type BIGINT NOT NULL, + valid TINYINT(1) DEFAULT NULL, + locked TINYINT(1) NOT NULL DEFAULT '1', + PRIMARY KEY (id) +); + +CREATE TABLE sp_distribution_set_tag +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_distribution_set_type +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, + deleted BIT(1) DEFAULT NULL, + type_key VARCHAR(64) NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_ds_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000) DEFAULT NULL, + ds BIGINT NOT NULL, + PRIMARY KEY (ds, meta_key) +); + +CREATE TABLE sp_ds_sm +( + ds_id BIGINT NOT NULL, + sm_id BIGINT NOT NULL, + PRIMARY KEY (ds_id, sm_id) +); + +CREATE TABLE sp_ds_tag +( + ds BIGINT NOT NULL, + tag BIGINT NOT NULL, + PRIMARY KEY (ds, tag) +); + +CREATE TABLE sp_ds_type_element +( + mandatory BIT(1) DEFAULT NULL, + distribution_set_type BIGINT NOT NULL, + software_module_type BIGINT NOT NULL, + PRIMARY KEY (distribution_set_type, software_module_type) +); + +CREATE TABLE sp_rollout +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + last_check BIGINT DEFAULT NULL, + group_theshold FLOAT DEFAULT NULL, + status INT NOT NULL, + distribution_set BIGINT NOT NULL, + target_filter VARCHAR(1024) DEFAULT NULL, + forced_time BIGINT DEFAULT NULL, + total_targets BIGINT DEFAULT NULL, + rollout_groups_created BIGINT DEFAULT NULL, + start_at BIGINT DEFAULT NULL, + deleted TINYINT(1) DEFAULT NULL, + action_type INT NOT NULL, + approval_decided_by VARCHAR(64) DEFAULT NULL, + approval_remark VARCHAR(255) DEFAULT NULL, + weight INT NOT NULL, + access_control_context VARCHAR(4096) DEFAULT NULL, + is_dynamic TINYINT(1) DEFAULT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_rollout_group +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + error_condition INT DEFAULT NULL, + error_condition_exp VARCHAR(512) DEFAULT NULL, + error_action INT DEFAULT NULL, + error_action_exp VARCHAR(512) DEFAULT NULL, + success_condition INT NOT NULL, + success_condition_exp VARCHAR(512) NOT NULL, + success_action INT NOT NULL, + success_action_exp VARCHAR(512) DEFAULT NULL, + status INT NOT NULL, + parent BIGINT DEFAULT NULL, + rollout BIGINT NOT NULL, + total_targets BIGINT DEFAULT NULL, + target_percentage FLOAT DEFAULT NULL, + target_filter VARCHAR(1024) DEFAULT NULL, + confirmation_required TINYINT(1) DEFAULT NULL, + is_dynamic TINYINT(1) NOT NULL DEFAULT '0', + PRIMARY KEY (id) +); + +CREATE TABLE sp_rollout_target_group +( + target BIGINT NOT NULL, + rollout_group BIGINT NOT NULL, + PRIMARY KEY (rollout_group, target) +); + +CREATE TABLE sp_sm_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000) DEFAULT NULL, + sm BIGINT NOT NULL, + target_visible BIT(1) DEFAULT NULL, + PRIMARY KEY (meta_key, sm) +); + +CREATE TABLE sp_software_module +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + version VARCHAR(64) NOT NULL, + deleted BIT(1) DEFAULT NULL, + vendor VARCHAR(256) DEFAULT NULL, + sm_type BIGINT NOT NULL, + encrypted TINYINT(1) DEFAULT NULL, + locked TINYINT(1) NOT NULL DEFAULT '1', + PRIMARY KEY (id) +); + +CREATE TABLE sp_software_module_type +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, + deleted BIT(1) DEFAULT NULL, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INT NOT NULL, + min_artifacts INT NOT NULL DEFAULT '0', + PRIMARY KEY (id) +); + +CREATE TABLE sp_target +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + controller_id VARCHAR(256) DEFAULT NULL, + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT DEFAULT NULL, + install_date BIGINT DEFAULT NULL, + address VARCHAR(512) DEFAULT NULL, + last_target_query BIGINT DEFAULT NULL, + request_controller_attributes BIT(1) NOT NULL, + installed_distribution_set BIGINT DEFAULT NULL, + update_status INT NOT NULL, + target_type BIGINT DEFAULT NULL, + target_group VARCHAR(256) DEFAULT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_target_attributes +( + target BIGINT NOT NULL, + attribute_value VARCHAR(128) DEFAULT NULL, + attribute_key VARCHAR(128) NOT NULL, + PRIMARY KEY (target, attribute_key) +); + +CREATE TABLE sp_target_conf_status +( + id BIGINT NOT NULL AUTO_INCREMENT, + target BIGINT NOT NULL, + initiator VARCHAR(64) DEFAULT NULL, + remark VARCHAR(512) DEFAULT NULL, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_target_filter_query +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + name VARCHAR(128) DEFAULT NULL, + query VARCHAR(1024) NOT NULL, + auto_assign_distribution_set BIGINT DEFAULT NULL, + auto_assign_action_type INT DEFAULT NULL, + auto_assign_weight INT NOT NULL, + auto_assign_initiated_by VARCHAR(64) DEFAULT NULL, + confirmation_required TINYINT(1) DEFAULT NULL, + access_control_context VARCHAR(4096) DEFAULT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_target_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000) DEFAULT NULL, + target BIGINT NOT NULL, + PRIMARY KEY (target, meta_key) +); + +CREATE TABLE sp_target_tag +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_target_target_tag +( + target BIGINT NOT NULL, + tag BIGINT NOT NULL, + PRIMARY KEY (target, tag) +); + +CREATE TABLE sp_target_type +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, + type_key VARCHAR(64) NOT NULL DEFAULT (_utf8mb4'_'), + PRIMARY KEY (id) +); + +CREATE TABLE sp_target_type_ds_type +( + target_type BIGINT NOT NULL, + distribution_set_type BIGINT NOT NULL, + PRIMARY KEY (target_type, distribution_set_type) +); + +CREATE TABLE sp_tenant +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + default_ds_type BIGINT NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE sp_tenant_configuration +( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL, + PRIMARY KEY (id) +); + +-- Indexes +CREATE INDEX sp_idx_action_01 ON sp_action (tenant, distribution_set); +CREATE INDEX sp_idx_action_02 ON sp_action (tenant, target, active); +CREATE INDEX sp_idx_action_prim ON sp_action (tenant, id); +CREATE INDEX fk_action_distribution_set ON sp_action (distribution_set); +CREATE INDEX fk_action_target ON sp_action (target); +CREATE INDEX fk_action_rollout ON sp_action (rollout); +CREATE INDEX fk_action_rollout_group ON sp_action (rollout_group); +CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref); +CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant, action, status); +CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant, id); +CREATE INDEX fk_action_status_action ON sp_action_status (action); +CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant, code); +CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status); +CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant, software_module); +CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant, id); +CREATE INDEX fk_artifact_software_module ON sp_artifact (software_module); +CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant, sha1_hash); +CREATE UNIQUE INDEX uk_distribution_set ON sp_distribution_set (tenant, name, version, ds_type); +CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant, id); +CREATE INDEX fk_distribution_set_ds_type ON sp_distribution_set (ds_type); +CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant, deleted); +CREATE UNIQUE INDEX uk_distribution_set_tag ON sp_distribution_set_tag (name, tenant); +CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant, id); +CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant, name); +CREATE UNIQUE INDEX uk_distribution_set_type_type_key ON sp_distribution_set_type (type_key, tenant); +CREATE UNIQUE INDEX uk_distribution_set_type_name ON sp_distribution_set_type (name, tenant); +CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant, deleted); +CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant, id); +CREATE INDEX fk_ds_sm_sm_id ON sp_ds_sm (sm_id); +CREATE INDEX fk_ds_tag_tag ON sp_ds_tag (tag); +CREATE INDEX fk_ds_type_element_software_module_type ON sp_ds_type_element (software_module_type); +CREATE UNIQUE INDEX uk_rollout ON sp_rollout (name, tenant); +CREATE INDEX fk_rollout_distribution_set ON sp_rollout (distribution_set); +CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant, status); +CREATE UNIQUE INDEX uk_rollout_group ON sp_rollout_group (name, rollout, tenant); +CREATE INDEX fk_rollout_group_rollout ON sp_rollout_group (rollout); +CREATE INDEX sp_idx_rollout_group_parent ON sp_rollout_group (parent); +CREATE INDEX fk_rollout_target_group_target ON sp_rollout_target_group (target); +CREATE INDEX fk_sm_metadata_sm ON sp_sm_metadata (sm); +CREATE UNIQUE INDEX uk_software_module ON sp_software_module (sm_type, name, version, tenant); +CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant, deleted, name, version); +CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant, deleted, sm_type); +CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant, id); +CREATE UNIQUE INDEX uk_software_module_type_type_key ON sp_software_module_type (type_key, tenant); +CREATE UNIQUE INDEX uk_software_module_type_name ON sp_software_module_type (name, tenant); +CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant, deleted); +CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant, id); +CREATE UNIQUE INDEX uk_target_controller_id ON sp_target (controller_id, tenant); +CREATE INDEX sp_idx_target_01 ON sp_target (tenant, name, assigned_distribution_set); +CREATE INDEX sp_idx_target_03 ON sp_target (tenant, controller_id, assigned_distribution_set); +CREATE INDEX sp_idx_target_04 ON sp_target (tenant, created_at); +CREATE INDEX sp_idx_target_prim ON sp_target (tenant, id); +CREATE INDEX fk_target_assign_ds ON sp_target (assigned_distribution_set); +CREATE INDEX fk_target_inst_ds ON sp_target (installed_distribution_set); +CREATE INDEX sp_idx_target_05 ON sp_target (tenant, last_modified_at); +CREATE INDEX fk_target_relation_target_type ON sp_target (target_type); +CREATE INDEX sp_idx_target_group ON sp_target (tenant, target_group); +CREATE INDEX fk_target_conf_status_target ON sp_target_conf_status (target); +CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant); +CREATE INDEX fk_target_filter_query_auto_assign_distribution_set ON sp_target_filter_query (auto_assign_distribution_set); +CREATE UNIQUE INDEX uk_target_tag ON sp_target_tag (name, tenant); +CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant, id); +CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant, name); +CREATE INDEX fk_target_target_tag_tag ON sp_target_target_tag (tag); +CREATE UNIQUE INDEX uk_target_type_key ON sp_target_type (type_key, tenant); +CREATE UNIQUE INDEX uk_target_name ON sp_target_type (name, tenant); +CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant, id); +CREATE INDEX fk_target_type_ds_type_distribution_set_type ON sp_target_type_ds_type (distribution_set_type); +CREATE UNIQUE INDEX uk_tenant ON sp_tenant (tenant); +CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant, id); +CREATE INDEX fk_tenant_default_ds_type ON sp_tenant (default_ds_type); +CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant); + +-- Foreign Key Constraints +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_ds + FOREIGN KEY (distribution_set) + REFERENCES sp_distribution_set (id); + +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rollout + FOREIGN KEY (rollout) + REFERENCES sp_rollout (id); + +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rolloutgroup + FOREIGN KEY (rollout_group) + REFERENCES sp_rollout_group (id); + +ALTER TABLE sp_action + ADD CONSTRAINT fk_targ_act_hist_targ + FOREIGN KEY (target) + REFERENCES sp_target (id) ON DELETE CASCADE; + +ALTER TABLE sp_action_status + ADD CONSTRAINT fk_act_stat_action + FOREIGN KEY (action) + REFERENCES sp_action (id) ON DELETE CASCADE; + +ALTER TABLE sp_action_status_messages + ADD CONSTRAINT fk_stat_msg_act_stat + FOREIGN KEY (action_status) + REFERENCES sp_action_status (id) ON DELETE CASCADE; + +ALTER TABLE sp_artifact + ADD CONSTRAINT fk_assigned_sm + FOREIGN KEY (software_module) + REFERENCES sp_software_module (id) ON DELETE CASCADE; + +ALTER TABLE sp_distribution_set + ADD CONSTRAINT fk_ds_dstype_ds + FOREIGN KEY (ds_type) + REFERENCES sp_distribution_set_type (id); + +ALTER TABLE sp_ds_metadata + ADD CONSTRAINT fk_metadata_ds + FOREIGN KEY (ds) + REFERENCES sp_distribution_set (id) ON DELETE CASCADE; + +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_module_ds + FOREIGN KEY (ds_id) + REFERENCES sp_distribution_set (id) ON DELETE CASCADE; + +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_module_module + FOREIGN KEY (sm_id) + REFERENCES sp_software_module (id) ON DELETE CASCADE; + +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_dstag_ds + FOREIGN KEY (ds) + REFERENCES sp_distribution_set (id) ON DELETE CASCADE; + +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_dstag_tag + FOREIGN KEY (tag) + REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; + +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_element + FOREIGN KEY (distribution_set_type) + REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; + +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_smtype + FOREIGN KEY (software_module_type) + REFERENCES sp_software_module_type (id) ON DELETE CASCADE; + +ALTER TABLE sp_rollout + ADD CONSTRAINT fk_rollout_ds + FOREIGN KEY (distribution_set) + REFERENCES sp_distribution_set (id); + +ALTER TABLE sp_rollout_group + ADD CONSTRAINT fk_rolloutgroup_rollout + FOREIGN KEY (rollout) + REFERENCES sp_rollout (id) ON DELETE CASCADE; + +ALTER TABLE sp_rollout_target_group + ADD CONSTRAINT fk_rollouttargetgroup_rolloutgroup + FOREIGN KEY (rollout_group) + REFERENCES sp_rollout_group (id) ON DELETE CASCADE; + +ALTER TABLE sp_rollout_target_group + ADD CONSTRAINT fk_rollouttargetgroup_target + FOREIGN KEY (target) + REFERENCES sp_target (id) ON DELETE CASCADE; + +ALTER TABLE sp_sm_metadata + ADD CONSTRAINT fk_metadata_sw + FOREIGN KEY (sm) + REFERENCES sp_software_module (id) ON DELETE CASCADE; + +ALTER TABLE sp_software_module + ADD CONSTRAINT fk_module_type + FOREIGN KEY (sm_type) + REFERENCES sp_software_module_type (id); + +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_assign_ds + FOREIGN KEY (assigned_distribution_set) + REFERENCES sp_distribution_set (id); + +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_inst_ds + FOREIGN KEY (installed_distribution_set) + REFERENCES sp_distribution_set (id); + +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_relation_target_type + FOREIGN KEY (target_type) + REFERENCES sp_target_type (id) ON DELETE SET NULL; + +ALTER TABLE sp_target_attributes + ADD CONSTRAINT fk_targ_attrib_target + FOREIGN KEY (target) + REFERENCES sp_target (id) ON DELETE CASCADE; + +ALTER TABLE sp_target_conf_status + ADD CONSTRAINT fk_target_auto_conf + FOREIGN KEY (target) + REFERENCES sp_target (id) ON DELETE CASCADE; + +ALTER TABLE sp_target_filter_query + ADD CONSTRAINT fk_filter_auto_assign_ds + FOREIGN KEY (auto_assign_distribution_set) + REFERENCES sp_distribution_set (id) ON DELETE SET NULL; + +ALTER TABLE sp_target_metadata + ADD CONSTRAINT fk_metadata_target + FOREIGN KEY (target) + REFERENCES sp_target (id) ON DELETE CASCADE; + +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_targ_targtag_tag + FOREIGN KEY (tag) + REFERENCES sp_target_tag (id) ON DELETE CASCADE; + +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_targ_targtag_target + FOREIGN KEY (target) + REFERENCES sp_target (id) ON DELETE CASCADE; + +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_relation_ds_type + FOREIGN KEY (distribution_set_type) + REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; + +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_relation_target_type + FOREIGN KEY (target_type) + REFERENCES sp_target_type (id) ON DELETE CASCADE; + +ALTER TABLE sp_tenant + ADD CONSTRAINT fk_tenant_md_default_ds_type + FOREIGN KEY (default_ds_type) + REFERENCES sp_distribution_set_type (id); \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql new file mode 100644 index 0000000000..940a21d24b --- /dev/null +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql @@ -0,0 +1,892 @@ +CREATE SEQUENCE sp_action_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_action +( + id BIGINT DEFAULT nextval('sp_action_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + active boolean, + forced_time BIGINT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT, + rollout_group BIGINT, + action_type INTEGER NOT NULL, + maintenance_cron_schedule VARCHAR(40), + maintenance_duration VARCHAR(40), + maintenance_time_zone VARCHAR(40), + external_ref VARCHAR(512), + weight INTEGER NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INTEGER +); + +CREATE SEQUENCE sp_action_status_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_action_status +( + id BIGINT DEFAULT nextval('sp_action_status_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + target_occurred_at BIGINT NOT NULL, + status INTEGER NOT NULL, + action BIGINT NOT NULL, + code INTEGER +); + +CREATE TABLE sp_action_status_messages +( + action_status BIGINT NOT NULL, + detail_message VARCHAR(512) NOT NULL +); + +CREATE SEQUENCE sp_artifact_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_artifact +( + id BIGINT DEFAULT nextval('sp_artifact_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + md5_hash VARCHAR(32), + file_size BIGINT, + provided_file_name VARCHAR(256), + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64) +); + +CREATE SEQUENCE sp_distribution_set_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_distribution_set +( + id BIGINT DEFAULT nextval('sp_distribution_set_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + version VARCHAR(64) NOT NULL, + deleted boolean, + required_migration_step boolean, + ds_type BIGINT NOT NULL, + valid boolean, + locked boolean DEFAULT true NOT NULL +); + +CREATE SEQUENCE sp_distributionset_tag_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_distribution_set_tag +( + id BIGINT DEFAULT nextval('sp_distributionset_tag_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16) +); + +CREATE SEQUENCE sp_distribution_set_type_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_distribution_set_type +( + id BIGINT DEFAULT nextval('sp_distribution_set_type_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16), + deleted boolean, + type_key VARCHAR(64) NOT NULL +); + +CREATE TABLE sp_ds_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + ds BIGINT NOT NULL +); + +CREATE TABLE sp_ds_sm +( + ds_id BIGINT NOT NULL, + sm_id BIGINT NOT NULL +); + +CREATE TABLE sp_ds_tag +( + ds BIGINT NOT NULL, + tag BIGINT NOT NULL +); + +CREATE TABLE sp_ds_type_element +( + mandatory boolean, + distribution_set_type BIGINT NOT NULL, + software_module_type BIGINT NOT NULL +); + +CREATE TABLE sp_lock +( + lock_key CHAR(36) NOT NULL, + region VARCHAR(100) NOT NULL, + client_id CHAR(36), + created_date timestamp without time zone NOT NULL +); + +CREATE SEQUENCE sp_rollout_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_rollout +( + id BIGINT DEFAULT nextval('sp_rollout_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + last_check BIGINT, + group_theshold real, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target_filter VARCHAR(1024), + forced_time BIGINT, + total_targets BIGINT, + rollout_groups_created BIGINT, + start_at BIGINT, + deleted boolean, + action_type INTEGER NOT NULL, + approval_decided_by VARCHAR(64), + approval_remark VARCHAR(255), + weight INTEGER NOT NULL, + access_control_context VARCHAR(4096), + is_dynamic boolean +); + +CREATE SEQUENCE sp_rolloutgroup_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_rollout_group +( + id BIGINT DEFAULT nextval('sp_rolloutgroup_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + error_condition INTEGER, + error_condition_exp VARCHAR(512), + error_action INTEGER, + error_action_exp VARCHAR(512), + success_condition INTEGER NOT NULL, + success_condition_exp VARCHAR(512) NOT NULL, + success_action INTEGER NOT NULL, + success_action_exp VARCHAR(512), + status INTEGER NOT NULL, + parent BIGINT, + rollout BIGINT NOT NULL, + total_targets BIGINT, + target_percentage real, + target_filter VARCHAR(1024), + confirmation_required boolean, + is_dynamic boolean DEFAULT false NOT NULL +); + +CREATE TABLE sp_rollout_target_group +( + target BIGINT NOT NULL, + rollout_group BIGINT NOT NULL +); + +CREATE TABLE sp_sm_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + sm BIGINT NOT NULL, + target_visible boolean +); + +CREATE SEQUENCE sp_base_software_module_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_software_module +( + id BIGINT DEFAULT nextval('sp_base_software_module_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + version VARCHAR(64) NOT NULL, + deleted boolean, + vendor VARCHAR(256), + sm_type BIGINT NOT NULL, + encrypted boolean, + locked boolean DEFAULT true NOT NULL +); + +CREATE SEQUENCE sp_software_module_type_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_software_module_type +( + id BIGINT DEFAULT nextval('sp_software_module_type_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16), + deleted boolean, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INTEGER NOT NULL, + min_artifacts INTEGER DEFAULT 0 NOT NULL +); + +CREATE SEQUENCE sp_target_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_target +( + id BIGINT DEFAULT nextval('sp_target_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + controller_id VARCHAR(256), + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT, + install_date BIGINT, + address VARCHAR(512), + last_target_query BIGINT, + request_controller_attributes boolean NOT NULL, + installed_distribution_set BIGINT, + update_status INTEGER NOT NULL, + target_type BIGINT, + target_group VARCHAR(256) +); + +CREATE TABLE sp_target_attributes +( + target BIGINT NOT NULL, + attribute_value VARCHAR(128), + attribute_key VARCHAR(128) NOT NULL +); + +CREATE TABLE sp_target_conf_status +( + id BIGINT NOT NULL, + target BIGINT NOT NULL, + initiator VARCHAR(64), + remark VARCHAR(512), + tenant VARCHAR(40) NOT NULL, + created_at BIGINT NOT NULL, + created_by VARCHAR(64) NOT NULL, + last_modified_at BIGINT NOT NULL, + last_modified_by VARCHAR(64) NOT NULL, + optlock_revision BIGINT +); + +CREATE SEQUENCE sp_target_conf_status_id_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +ALTER SEQUENCE sp_target_conf_status_id_seq OWNED BY sp_target_conf_status.id; + +CREATE SEQUENCE sp_target_filter_query_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_target_filter_query +( + id BIGINT DEFAULT nextval('sp_target_filter_query_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + name VARCHAR(128), + query VARCHAR(1024) NOT NULL, + auto_assign_distribution_set BIGINT, + auto_assign_action_type INTEGER, + auto_assign_weight INTEGER NOT NULL, + auto_assign_initiated_by VARCHAR(64), + confirmation_required boolean, + access_control_context VARCHAR(4096) +); + +CREATE TABLE sp_target_metadata +( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + target BIGINT NOT NULL +); + +CREATE SEQUENCE sp_target_tag_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_target_tag +( + id BIGINT DEFAULT nextval('sp_target_tag_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16) +); + +CREATE TABLE sp_target_target_tag +( + target BIGINT NOT NULL, + tag BIGINT NOT NULL +); + +CREATE SEQUENCE sp_target_type_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_target_type +( + id BIGINT DEFAULT nextval('sp_target_type_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16), + type_key VARCHAR(64) DEFAULT '_'::VARCHAR NOT NULL +); + +CREATE TABLE sp_target_type_ds_type +( + target_type BIGINT NOT NULL, + distribution_set_type BIGINT NOT NULL +); + +CREATE SEQUENCE sp_tenant_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_tenant +( + id BIGINT DEFAULT nextval('sp_tenant_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + default_ds_type BIGINT NOT NULL +); + +CREATE SEQUENCE sp_tenant_configuration_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE TABLE sp_tenant_configuration +( + id BIGINT DEFAULT nextval('sp_tenant_configuration_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL +); + +ALTER TABLE ONLY sp_target_conf_status ALTER COLUMN id SET DEFAULT nextval('sp_target_conf_status_id_seq'); + +ALTER TABLE ONLY sp_action + ADD CONSTRAINT pk_action PRIMARY KEY (id); + +ALTER TABLE ONLY sp_action_status + ADD CONSTRAINT pk_action_status PRIMARY KEY (id); + +ALTER TABLE ONLY sp_artifact + ADD CONSTRAINT pk_artifact PRIMARY KEY (id); + +ALTER TABLE ONLY sp_distribution_set + ADD CONSTRAINT pk_distribution_set PRIMARY KEY (id); + +ALTER TABLE ONLY sp_distribution_set_tag + ADD CONSTRAINT pk_distribution_set_tag PRIMARY KEY (id); + +ALTER TABLE ONLY sp_distribution_set_type + ADD CONSTRAINT pk_distribution_set_type PRIMARY KEY (id); + +ALTER TABLE ONLY sp_ds_metadata + ADD CONSTRAINT pk_ds_metadata PRIMARY KEY (ds, meta_key); + +ALTER TABLE ONLY sp_ds_sm + ADD CONSTRAINT pk_ds_sm PRIMARY KEY (ds_id, sm_id); + +ALTER TABLE ONLY sp_ds_tag + ADD CONSTRAINT pk_ds_tag PRIMARY KEY (ds, tag); + +ALTER TABLE ONLY sp_ds_type_element + ADD CONSTRAINT pk_ds_type_element PRIMARY KEY (distribution_set_type, software_module_type); + +ALTER TABLE ONLY sp_rollout + ADD CONSTRAINT pk_rollout PRIMARY KEY (id); + +ALTER TABLE ONLY sp_rollout_group + ADD CONSTRAINT pk_rollout_group PRIMARY KEY (id); + +ALTER TABLE ONLY sp_rollout_target_group + ADD CONSTRAINT pk_rollout_target_group PRIMARY KEY (rollout_group, target); + +ALTER TABLE ONLY sp_sm_metadata + ADD CONSTRAINT pk_sm_metadata PRIMARY KEY (meta_key, sm); + +ALTER TABLE ONLY sp_software_module + ADD CONSTRAINT pk_software_module PRIMARY KEY (id); + +ALTER TABLE ONLY sp_software_module_type + ADD CONSTRAINT pk_software_module_type PRIMARY KEY (id); + +ALTER TABLE ONLY sp_target_conf_status + ADD CONSTRAINT pk_sp_target_conf_status PRIMARY KEY (id); + +ALTER TABLE ONLY sp_target_type + ADD CONSTRAINT pk_sp_target_type PRIMARY KEY (id); + +ALTER TABLE ONLY sp_target + ADD CONSTRAINT pk_target PRIMARY KEY (id); + +ALTER TABLE ONLY sp_target_attributes + ADD CONSTRAINT pk_target_attributes PRIMARY KEY (target, attribute_key); + +ALTER TABLE ONLY sp_target_filter_query + ADD CONSTRAINT pk_target_filter_query PRIMARY KEY (id); + +ALTER TABLE ONLY sp_target_metadata + ADD CONSTRAINT pk_target_metadata PRIMARY KEY (target, meta_key); + +ALTER TABLE ONLY sp_target_tag + ADD CONSTRAINT pk_target_tag PRIMARY KEY (id); + +ALTER TABLE ONLY sp_target_target_tag + ADD CONSTRAINT pk_target_target_tag PRIMARY KEY (target, tag); + +ALTER TABLE ONLY sp_tenant + ADD CONSTRAINT pk_tenant PRIMARY KEY (id); + +ALTER TABLE ONLY sp_tenant_configuration + ADD CONSTRAINT pk_tenant_configuration PRIMARY KEY (id); + + +ALTER TABLE ONLY sp_lock + ADD CONSTRAINT sp_lock_pk PRIMARY KEY (lock_key, region); + +ALTER TABLE ONLY sp_distribution_set + ADD CONSTRAINT uk_distribution_set UNIQUE (tenant, name, version, ds_type); + +ALTER TABLE ONLY sp_distribution_set_tag + ADD CONSTRAINT uk_distribution_set_tag UNIQUE (name, tenant); + +ALTER TABLE ONLY sp_distribution_set_type + ADD CONSTRAINT uk_distribution_set_type_name UNIQUE (name, tenant); + +ALTER TABLE ONLY sp_distribution_set_type + ADD CONSTRAINT uk_distribution_set_type_type_key UNIQUE (type_key, tenant); + +ALTER TABLE ONLY sp_rollout_group + ADD CONSTRAINT uk_rollout_group UNIQUE (name, rollout, tenant); + +ALTER TABLE ONLY sp_rollout + ADD CONSTRAINT uk_rollout_sp_rollout UNIQUE (name, tenant); + +ALTER TABLE ONLY sp_software_module + ADD CONSTRAINT uk_software_module UNIQUE (sm_type, name, version, tenant); + +ALTER TABLE ONLY sp_software_module_type + ADD CONSTRAINT uk_software_module_type_name UNIQUE (name, tenant); + +ALTER TABLE ONLY sp_software_module_type + ADD CONSTRAINT uk_software_module_type_type_key UNIQUE (type_key, tenant); + +ALTER TABLE ONLY sp_target + ADD CONSTRAINT uk_target UNIQUE (controller_id, tenant); + +ALTER TABLE ONLY sp_target_filter_query + ADD CONSTRAINT uk_target_filter_query UNIQUE (name, tenant); + +ALTER TABLE ONLY sp_target_type + ADD CONSTRAINT uk_target_name UNIQUE (name, tenant); + +ALTER TABLE ONLY sp_target_tag + ADD CONSTRAINT uk_target_tag UNIQUE (name, tenant); + +ALTER TABLE ONLY sp_target_type + ADD CONSTRAINT uk_target_type_key UNIQUE (type_key, tenant); + +ALTER TABLE ONLY sp_tenant + ADD CONSTRAINT uk_tenant UNIQUE (tenant); + +ALTER TABLE ONLY sp_tenant_configuration + ADD CONSTRAINT uk_tenant_configuration UNIQUE (conf_key, tenant); + +CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages USING btree (action_status); + +CREATE INDEX sp_idx_action_01_sp_action ON sp_action USING btree (tenant, distribution_set); + +CREATE INDEX sp_idx_action_02_sp_action ON sp_action USING btree (tenant, target, active); + +CREATE INDEX sp_idx_action_external_ref_sp_action ON sp_action USING btree (external_ref); + +CREATE INDEX sp_idx_action_prim_sp_action ON sp_action USING btree (tenant, id); + +CREATE INDEX sp_idx_action_status_02_sp_action_status ON sp_action_status USING btree (tenant, action, status); + +CREATE INDEX sp_idx_action_status_03 ON sp_action_status USING btree (tenant, code); + +CREATE INDEX sp_idx_action_status_prim_sp_action_status ON sp_action_status USING btree (tenant, id); + +CREATE INDEX sp_idx_action_target ON sp_action USING btree (target); + +CREATE INDEX sp_idx_artifact_01_sp_artifact ON sp_artifact USING btree (tenant, software_module); + +CREATE INDEX sp_idx_artifact_02_sp_artifact ON sp_artifact USING btree (tenant, sha1_hash); + +CREATE INDEX sp_idx_artifact_prim_sp_artifact ON sp_artifact USING btree (tenant, id); + +CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set USING btree (tenant, deleted); + +CREATE INDEX sp_idx_distribution_set_prim_sp_distribution_set ON sp_distribution_set USING btree (tenant, id); + +CREATE INDEX sp_idx_distribution_set_tag_01_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, name); + +CREATE INDEX sp_idx_distribution_set_tag_prim_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, id); + +CREATE INDEX sp_idx_distribution_set_type_01_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, deleted); + +CREATE INDEX sp_idx_distribution_set_type_prim_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, id); + +CREATE INDEX sp_idx_rollout_group_parent ON sp_rollout_group USING btree (parent); + +CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout USING btree (tenant, status); + +CREATE INDEX sp_idx_rollout_target_group_target ON sp_rollout_target_group USING btree (target); + +CREATE INDEX sp_idx_software_module_01 ON sp_software_module USING btree (tenant, deleted, name, version); + +CREATE INDEX sp_idx_software_module_02 ON sp_software_module USING btree (tenant, deleted, sm_type); + +CREATE INDEX sp_idx_software_module_prim ON sp_software_module USING btree (tenant, id); + +CREATE INDEX sp_idx_software_module_type_01_sp_software_module_type ON sp_software_module_type USING btree (tenant, deleted); + +CREATE INDEX sp_idx_software_module_type_prim_sp_software_module_type ON sp_software_module_type USING btree (tenant, id); + +CREATE INDEX sp_idx_target_01_sp_target ON sp_target USING btree (tenant, name, assigned_distribution_set); + +CREATE INDEX sp_idx_target_03_sp_target ON sp_target USING btree (tenant, controller_id, assigned_distribution_set); + +CREATE INDEX sp_idx_target_04_sp_target ON sp_target USING btree (tenant, created_at); + +CREATE INDEX sp_idx_target_05 ON sp_target USING btree (tenant, last_modified_at); + +CREATE INDEX sp_idx_target_attributes_target_id ON sp_target_attributes USING btree (target); + +CREATE INDEX sp_idx_target_group ON sp_target USING btree (tenant, target_group); + +CREATE INDEX sp_idx_target_prim_sp_target ON sp_target USING btree (tenant, id); + +CREATE INDEX sp_idx_target_tag_01_sp_target_tag ON sp_target_tag USING btree (tenant, name); + +CREATE INDEX sp_idx_target_tag_prim_sp_target_tag ON sp_target_tag USING btree (tenant, id); + +CREATE INDEX sp_idx_target_type_prim ON sp_target_type USING btree (tenant, id); + +CREATE INDEX sp_idx_tenant_prim_sp_tenant ON sp_tenant USING btree (tenant, id); + +ALTER TABLE ONLY sp_action + ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_action + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_action + ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_action_status + ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_action_status_messages + ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_action + ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_artifact + ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_distribution_set + ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_ds_metadata + ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_ds_sm + ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_ds_sm + ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_ds_tag + ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_ds_tag + ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_rollout + ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_rollout_group + ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_rollout_target_group + ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_rollout_target_group + ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_sm_metadata + ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_software_module + ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_tenant + ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_target + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_target_attributes + ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_target_filter_query + ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set(id) ON +UPDATE RESTRICT +ON +DELETE +SET NULL; + +ALTER TABLE ONLY sp_target + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set(id) ON +UPDATE RESTRICT +ON +DELETE +RESTRICT; + +ALTER TABLE ONLY sp_target_metadata + ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_target + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON +UPDATE RESTRICT +ON +DELETE +SET NULL; + +ALTER TABLE ONLY sp_target_target_tag + ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_target_target_tag + ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; + +ALTER TABLE ONLY sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON +UPDATE RESTRICT +ON +DELETE +CASCADE; \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/V1_12_35__sm_type_min_artifacts__POSTGRESQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/V1_12_35__sm_type_min_artifacts__POSTGRESQL.sql index 0d72136328..182c4bd11b 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/V1_12_35__sm_type_min_artifacts__POSTGRESQL.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/V1_12_35__sm_type_min_artifacts__POSTGRESQL.sql @@ -1,4 +1,4 @@ ALTER TABLE sp_software_module_type ADD COLUMN min_artifacts integer default 0 NOT NULL; -DROP INDEX sp_idx_distribution_set_01; +DROP INDEX sp_idx_distribution_set_01_sp_distribution_set; CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set USING BTREE (tenant, deleted); ALTER TABLE sp_distribution_set DROP COLUMN complete; \ No newline at end of file From f0af3a78772240c7102aa3f04c35a6c17c281146 Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Tue, 3 Feb 2026 16:08:48 +0200 Subject: [PATCH 2/4] Add SQL format, close to the already used --- eclipse_codeformatter.xml | 878 ++++++++--------- .../H2/B1_20_0__1.0.0_baseline__H2.sql | 645 ++++++------- .../MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql | 773 +++++++-------- .../B1_20_0__1.0.0_baseline__POSTGRESQL.sql | 892 ++++++------------ intellij_codeformatter.xml | 872 ++++++++--------- 5 files changed, 1768 insertions(+), 2292 deletions(-) diff --git a/eclipse_codeformatter.xml b/eclipse_codeformatter.xml index a985b3a23d..7f22ee69db 100644 --- a/eclipse_codeformatter.xml +++ b/eclipse_codeformatter.xml @@ -1,504 +1,380 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql index b7a3776f80..89bddb9b6c 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql @@ -1,490 +1,465 @@ -- hawkbit 1.0.0 H2 database migration script baseline -- -CREATE TABLE sp_target_conf_status -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - target BIGINT NOT NULL, - initiator VARCHAR(64), - remark VARCHAR(512), - created_at BIGINT, - created_by VARCHAR(64), + +CREATE TABLE sp_target_conf_status ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + target BIGINT NOT NULL, + initiator VARCHAR(64), + remark VARCHAR(512), + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, + tenant VARCHAR(40) NOT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_target_type -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_target_type ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - colour VARCHAR(16), - type_key VARCHAR(64) DEFAULT '_' NOT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + type_key VARCHAR(64) DEFAULT '_' NOT NULL, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant NULLS FIRST, id NULLS FIRST); -CREATE TABLE sp_action_status -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - target_occurred_at BIGINT NOT NULL, - status INTEGER NOT NULL, - action BIGINT NOT NULL, - code INTEGER, +CREATE TABLE sp_action_status ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + target_occurred_at BIGINT NOT NULL, + status INTEGER NOT NULL, + action BIGINT NOT NULL, + code INTEGER, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant NULLS FIRST, action NULLS FIRST, status NULLS FIRST); -CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant NULLS FIRST, code NULLS FIRST); -CREATE TABLE sp_distribution_set_type -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_distribution_set_type ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - colour VARCHAR(16), - deleted BOOLEAN, - type_key VARCHAR(64) NOT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant NULLS FIRST, deleted NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant NULLS FIRST, id NULLS FIRST); -CREATE TABLE sp_distribution_set_tag -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_distribution_set_tag ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - colour VARCHAR(16), + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), PRIMARY KEY (id) ); -CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant NULLS FIRST, name NULLS FIRST); -CREATE TABLE sp_ds_tag -( - ds BIGINT NOT NULL, +CREATE TABLE sp_ds_tag ( + ds BIGINT NOT NULL, tag BIGINT NOT NULL, PRIMARY KEY (ds, tag) ); -CREATE TABLE sp_ds_metadata -( - meta_key VARCHAR(128) NOT NULL, +CREATE TABLE sp_ds_metadata ( + meta_key VARCHAR(128) NOT NULL, meta_value VARCHAR(4000), - ds BIGINT NOT NULL, + ds BIGINT NOT NULL, PRIMARY KEY (ds, meta_key) ); -CREATE TABLE sp_ds_sm -( +CREATE TABLE sp_ds_sm ( ds_id BIGINT NOT NULL, sm_id BIGINT NOT NULL, PRIMARY KEY (ds_id, sm_id) ); -CREATE TABLE sp_ds_type_element -( - mandatory BOOLEAN, +CREATE TABLE sp_ds_type_element ( + mandatory BOOLEAN, distribution_set_type BIGINT NOT NULL, - software_module_type BIGINT NOT NULL, + software_module_type BIGINT NOT NULL, PRIMARY KEY (distribution_set_type, software_module_type) ); -CREATE TABLE sp_action -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - active BOOLEAN, - forced_time BIGINT, - status INTEGER NOT NULL, - distribution_set BIGINT NOT NULL, - target BIGINT NOT NULL, - rollout BIGINT, - rollout_group BIGINT, - action_type INTEGER NOT NULL, +CREATE TABLE sp_action ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + active BOOLEAN, + forced_time BIGINT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT, + rollout_group BIGINT, + action_type INTEGER NOT NULL, maintenance_cron_schedule VARCHAR(40), - maintenance_duration VARCHAR(40), - maintenance_time_zone VARCHAR(40), - external_ref VARCHAR(512), - weight INTEGER NOT NULL, - initiated_by VARCHAR(64) NOT NULL, - last_action_status_code INTEGER, + maintenance_duration VARCHAR(40), + maintenance_time_zone VARCHAR(40), + external_ref VARCHAR(512), + weight INTEGER NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INTEGER, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_action_01 ON sp_action (tenant NULLS FIRST, distribution_set NULLS FIRST); -CREATE INDEX sp_idx_action_02 ON sp_action (tenant NULLS FIRST, target NULLS FIRST, active NULLS FIRST); -CREATE INDEX sp_idx_action_prim ON sp_action (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref NULLS FIRST); -CREATE TABLE sp_target_type_ds_type -( - target_type BIGINT NOT NULL, +CREATE TABLE sp_target_type_ds_type ( + target_type BIGINT NOT NULL, distribution_set_type BIGINT NOT NULL, PRIMARY KEY (target_type, distribution_set_type) ); -CREATE TABLE sp_distribution_set -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - version VARCHAR(64) NOT NULL, - deleted BOOLEAN, +CREATE TABLE sp_distribution_set ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + version VARCHAR(64) NOT NULL, + deleted BOOLEAN, required_migration_step BOOLEAN, - ds_type BIGINT NOT NULL, - valid BOOLEAN, - locked BOOLEAN DEFAULT TRUE NOT NULL, + ds_type BIGINT NOT NULL, + valid BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant NULLS FIRST, deleted NULLS FIRST); -CREATE TABLE sp_action_status_messages -( - action_status BIGINT NOT NULL, +CREATE TABLE sp_action_status_messages ( + action_status BIGINT NOT NULL, detail_message VARCHAR(512) NOT NULL ); -CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status NULLS FIRST); -CREATE TABLE sp_artifact -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - md5_hash VARCHAR(32), - file_size BIGINT, +CREATE TABLE sp_artifact ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + md5_hash VARCHAR(32), + file_size BIGINT, provided_file_name VARCHAR(256), - sha1_hash VARCHAR(40) NOT NULL, - software_module BIGINT NOT NULL, - sha256_hash CHAR(64), + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64), PRIMARY KEY (id) ); -CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant NULLS FIRST, software_module NULLS FIRST); -CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant NULLS FIRST, sha1_hash NULLS FIRST); -CREATE TABLE sp_rollout -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - last_check BIGINT, - group_theshold FLOAT, - status INTEGER NOT NULL, - distribution_set BIGINT NOT NULL, - target_filter VARCHAR(1024), - forced_time BIGINT, - total_targets BIGINT, +CREATE TABLE sp_rollout ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + last_check BIGINT, + group_theshold FLOAT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target_filter VARCHAR(1024), + forced_time BIGINT, + total_targets BIGINT, rollout_groups_created BIGINT, - start_at BIGINT, - deleted BOOLEAN, - action_type INTEGER NOT NULL, - approval_decided_by VARCHAR(64), - approval_remark VARCHAR(255), - weight INTEGER NOT NULL, + start_at BIGINT, + deleted BOOLEAN, + action_type INTEGER NOT NULL, + approval_decided_by VARCHAR(64), + approval_remark VARCHAR(255), + weight INTEGER NOT NULL, access_control_context VARCHAR(4096), - is_dynamic BOOLEAN, + is_dynamic BOOLEAN, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant NULLS FIRST, status NULLS FIRST); -CREATE TABLE sp_target_tag -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_target_tag ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - colour VARCHAR(16), + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), PRIMARY KEY (id) ); -CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant NULLS FIRST, name NULLS FIRST); -CREATE TABLE sp_target_target_tag -( +CREATE TABLE sp_target_target_tag ( target BIGINT NOT NULL, - tag BIGINT NOT NULL, + tag BIGINT NOT NULL, PRIMARY KEY (target, tag) ); -CREATE TABLE sp_tenant -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_tenant ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - default_ds_type BIGINT NOT NULL, + tenant VARCHAR(40) NOT NULL, + default_ds_type BIGINT NOT NULL, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant NULLS FIRST, id NULLS FIRST); -CREATE TABLE sp_tenant_configuration -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_tenant_configuration ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - conf_key VARCHAR(128) NOT NULL, - conf_value VARCHAR(512) NOT NULL, + tenant VARCHAR(40) NOT NULL, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_target_metadata -( - meta_key VARCHAR(128) NOT NULL, +CREATE TABLE sp_target_metadata ( + meta_key VARCHAR(128) NOT NULL, meta_value VARCHAR(4000), - target BIGINT NOT NULL, + target BIGINT NOT NULL, PRIMARY KEY (target, meta_key) ); -CREATE TABLE sp_target_filter_query -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - name VARCHAR(128) NOT NULL, - query VARCHAR(1024) NOT NULL, +CREATE TABLE sp_target_filter_query ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + name VARCHAR(128) NOT NULL, + query VARCHAR(1024) NOT NULL, auto_assign_distribution_set BIGINT, - auto_assign_action_type INTEGER, - auto_assign_weight INTEGER NOT NULL, - auto_assign_initiated_by VARCHAR(64), - confirmation_required BOOLEAN, - access_control_context VARCHAR(4096), + auto_assign_action_type INTEGER, + auto_assign_weight INTEGER NOT NULL, + auto_assign_initiated_by VARCHAR(64), + confirmation_required BOOLEAN, + access_control_context VARCHAR(4096), PRIMARY KEY (id) ); -CREATE TABLE sp_sm_metadata -( - meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000), - sm BIGINT NOT NULL, +CREATE TABLE sp_sm_metadata ( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + sm BIGINT NOT NULL, target_visible BOOLEAN, PRIMARY KEY (meta_key, sm) ); -CREATE TABLE sp_rollout_group -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - error_condition INTEGER, - error_condition_exp VARCHAR(512), - error_action INTEGER, - error_action_exp VARCHAR(512), - success_condition INTEGER NOT NULL, - success_condition_exp VARCHAR(512) NOT NULL, - success_action INTEGER NOT NULL, - success_action_exp VARCHAR(512), - status INTEGER NOT NULL, - parent BIGINT, - rollout BIGINT NOT NULL, - total_targets BIGINT, - target_percentage FLOAT, - target_filter VARCHAR(1024), +CREATE TABLE sp_rollout_group ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + error_condition INTEGER, + error_condition_exp VARCHAR(512), + error_action INTEGER, + error_action_exp VARCHAR(512), + success_condition INTEGER NOT NULL, + success_condition_exp VARCHAR(512) NOT NULL, + success_action INTEGER NOT NULL, + success_action_exp VARCHAR(512), + status INTEGER NOT NULL, + parent BIGINT, + rollout BIGINT NOT NULL, + total_targets BIGINT, + target_percentage FLOAT, + target_filter VARCHAR(1024), confirmation_required BOOLEAN, - is_dynamic BOOLEAN DEFAULT FALSE NOT NULL, + is_dynamic BOOLEAN DEFAULT FALSE NOT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_software_module_type -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - colour VARCHAR(16), - deleted BOOLEAN, - type_key VARCHAR(64) NOT NULL, - max_ds_assignments INTEGER NOT NULL, - min_artifacts INTEGER DEFAULT 0 NOT NULL, +CREATE TABLE sp_software_module_type ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INTEGER NOT NULL, + min_artifacts INTEGER DEFAULT 0 NOT NULL, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant NULLS FIRST, deleted NULLS FIRST); -CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant NULLS FIRST, id NULLS FIRST); -CREATE TABLE sp_lock -( - lock_key CHAR(36) NOT NULL, - region VARCHAR(100) NOT NULL, - client_id CHAR(36), - created_date TIMESTAMP NOT NULL, +CREATE TABLE sp_lock ( + lock_key CHAR(36) NOT NULL, + region VARCHAR(100) NOT NULL, + client_id CHAR(36), + created_date TIMESTAMP NOT NULL, PRIMARY KEY (lock_key, region) ); -CREATE TABLE sp_target_attributes -( - target BIGINT NOT NULL, +CREATE TABLE sp_target_attributes ( + target BIGINT NOT NULL, attribute_value VARCHAR(128), - attribute_key VARCHAR(128) NOT NULL, + attribute_key VARCHAR(128) NOT NULL, PRIMARY KEY (target, attribute_key) ); -CREATE TABLE sp_target -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - controller_id VARCHAR(256) NOT NULL, - sec_token VARCHAR(128) NOT NULL, - assigned_distribution_set BIGINT, - install_date BIGINT, - address VARCHAR(512), - last_target_query BIGINT, - request_controller_attributes BOOLEAN NOT NULL, - installed_distribution_set BIGINT, - update_status INTEGER NOT NULL, - target_type BIGINT, - target_group VARCHAR(256), +CREATE TABLE sp_target ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + controller_id VARCHAR(256) NOT NULL, + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT, + install_date BIGINT, + address VARCHAR(512), + last_target_query BIGINT, + request_controller_attributes BOOLEAN NOT NULL, + installed_distribution_set BIGINT, + update_status INTEGER NOT NULL, + target_type BIGINT, + target_group VARCHAR(256), PRIMARY KEY (id) ); -CREATE INDEX sp_idx_target_01 ON sp_target (tenant NULLS FIRST, name NULLS FIRST, assigned_distribution_set NULLS FIRST); -CREATE INDEX sp_idx_target_03 ON sp_target (tenant NULLS FIRST, controller_id NULLS FIRST, assigned_distribution_set NULLS FIRST); -CREATE INDEX sp_idx_target_04 ON sp_target (tenant NULLS FIRST, created_at NULLS FIRST); -CREATE INDEX sp_idx_target_prim ON sp_target (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_target_05 ON sp_target (tenant NULLS FIRST, last_modified_at NULLS FIRST); -CREATE INDEX sp_idx_target_group ON sp_target (tenant NULLS FIRST, target_group NULLS FIRST); -CREATE TABLE sp_software_module -( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_software_module ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - version VARCHAR(64) NOT NULL, - deleted BOOLEAN, - vendor VARCHAR(256), - sm_type BIGINT NOT NULL, - encrypted BOOLEAN, - locked BOOLEAN DEFAULT TRUE NOT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + version VARCHAR(64) NOT NULL, + deleted BOOLEAN, + vendor VARCHAR(256), + sm_type BIGINT NOT NULL, + encrypted BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant NULLS FIRST, deleted NULLS FIRST, name NULLS FIRST, version NULLS FIRST); -CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant NULLS FIRST, deleted NULLS FIRST, sm_type NULLS FIRST); -CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant NULLS FIRST, id NULLS FIRST); -CREATE TABLE sp_rollout_target_group -( - target BIGINT NOT NULL, +CREATE TABLE sp_rollout_target_group ( + target BIGINT NOT NULL, rollout_group BIGINT NOT NULL, PRIMARY KEY (rollout_group, target) ); +-- Indexes +CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant NULLS FIRST, action NULLS FIRST, status NULLS FIRST); +CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant NULLS FIRST, code NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant NULLS FIRST, deleted NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant NULLS FIRST, name NULLS FIRST); +CREATE INDEX sp_idx_action_01 ON sp_action (tenant NULLS FIRST, distribution_set NULLS FIRST); +CREATE INDEX sp_idx_action_02 ON sp_action (tenant NULLS FIRST, target NULLS FIRST, active NULLS FIRST); +CREATE INDEX sp_idx_action_prim ON sp_action (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant NULLS FIRST, deleted NULLS FIRST); +CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status NULLS FIRST); +CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant NULLS FIRST, software_module NULLS FIRST); +CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant NULLS FIRST, sha1_hash NULLS FIRST); +CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant NULLS FIRST, status NULLS FIRST); +CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant NULLS FIRST, name NULLS FIRST); +CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant NULLS FIRST, deleted NULLS FIRST); +CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_target_01 ON sp_target (tenant NULLS FIRST, name NULLS FIRST, assigned_distribution_set NULLS FIRST); +CREATE INDEX sp_idx_target_03 ON sp_target (tenant NULLS FIRST, controller_id NULLS FIRST, assigned_distribution_set NULLS FIRST); +CREATE INDEX sp_idx_target_04 ON sp_target (tenant NULLS FIRST, created_at NULLS FIRST); +CREATE INDEX sp_idx_target_prim ON sp_target (tenant NULLS FIRST, id NULLS FIRST); +CREATE INDEX sp_idx_target_05 ON sp_target (tenant NULLS FIRST, last_modified_at NULLS FIRST); +CREATE INDEX sp_idx_target_group ON sp_target (tenant NULLS FIRST, target_group NULLS FIRST); +CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant NULLS FIRST, deleted NULLS FIRST, name NULLS FIRST, version NULLS FIRST); +CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant NULLS FIRST, deleted NULLS FIRST, sm_type NULLS FIRST); +CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant NULLS FIRST, id NULLS FIRST); + +-- Constraints ALTER TABLE sp_distribution_set_tag - ADD CONSTRAINT uk_distribution_set_tag UNIQUE NULLS DISTINCT (name, tenant); + ADD CONSTRAINT uk_distribution_set_tag UNIQUE NULLS DISTINCT (NAME, tenant); ALTER TABLE sp_software_module - ADD CONSTRAINT uk_software_module UNIQUE NULLS DISTINCT (sm_type, name, version, tenant); + ADD CONSTRAINT uk_software_module UNIQUE NULLS DISTINCT (sm_type, NAME, version, tenant); ALTER TABLE sp_target_type ADD CONSTRAINT uk_target_type_key UNIQUE NULLS DISTINCT (type_key, tenant); ALTER TABLE sp_software_module_type ADD CONSTRAINT uk_software_module_type_type_key UNIQUE NULLS DISTINCT (type_key, tenant); ALTER TABLE sp_target_type - ADD CONSTRAINT uk_target_name UNIQUE NULLS DISTINCT (name, tenant); + ADD CONSTRAINT uk_target_name UNIQUE NULLS DISTINCT (NAME, tenant); ALTER TABLE sp_tenant ADD CONSTRAINT uk_tenant UNIQUE NULLS DISTINCT (tenant); ALTER TABLE sp_target_filter_query - ADD CONSTRAINT uk_target_filter_query UNIQUE NULLS DISTINCT (name, tenant); + ADD CONSTRAINT uk_target_filter_query UNIQUE NULLS DISTINCT (NAME, tenant); ALTER TABLE sp_distribution_set - ADD CONSTRAINT uk_distribution_set UNIQUE NULLS DISTINCT (tenant, name, version, ds_type); + ADD CONSTRAINT uk_distribution_set UNIQUE NULLS DISTINCT (tenant, NAME, version, ds_type); ALTER TABLE sp_rollout - ADD CONSTRAINT uk_rollout UNIQUE NULLS DISTINCT (name, tenant); + ADD CONSTRAINT uk_rollout UNIQUE NULLS DISTINCT (NAME, tenant); ALTER TABLE sp_tenant_configuration ADD CONSTRAINT uk_tenant_configuration UNIQUE NULLS DISTINCT (conf_key, tenant); ALTER TABLE sp_distribution_set_type - ADD CONSTRAINT uk_distribution_set_type_name UNIQUE NULLS DISTINCT (name, tenant); + ADD CONSTRAINT uk_distribution_set_type_name UNIQUE NULLS DISTINCT (NAME, tenant); ALTER TABLE sp_rollout_group - ADD CONSTRAINT uk_rollout_group UNIQUE NULLS DISTINCT (name, rollout, tenant); + ADD CONSTRAINT uk_rollout_group UNIQUE NULLS DISTINCT (NAME, rollout, tenant); ALTER TABLE sp_distribution_set_type ADD CONSTRAINT uk_distribution_set_type_type_key UNIQUE NULLS DISTINCT (type_key, tenant); ALTER TABLE sp_software_module_type - ADD CONSTRAINT uk_software_module_type_name UNIQUE NULLS DISTINCT (name, tenant); + ADD CONSTRAINT uk_software_module_type_name UNIQUE NULLS DISTINCT (NAME, tenant); ALTER TABLE sp_target ADD CONSTRAINT uk_target_controller_id UNIQUE NULLS DISTINCT (controller_id, tenant); ALTER TABLE sp_target_tag - ADD CONSTRAINT uk_target_tag UNIQUE NULLS DISTINCT (name, tenant); + ADD CONSTRAINT uk_target_tag UNIQUE NULLS DISTINCT (NAME, tenant); ALTER TABLE sp_action ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; ALTER TABLE sp_target_type_ds_type diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql index 656e0bc299..bc584d352b 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql @@ -1,425 +1,397 @@ -CREATE TABLE SP_LOCK -( - LOCK_KEY CHAR(36) NOT NULL, - REGION VARCHAR(100) NOT NULL, - CLIENT_ID CHAR(36) DEFAULT NULL, +-- hawkbit 1.0.0 MySQL database migration script baseline -- + +CREATE TABLE SP_LOCK ( + LOCK_KEY CHAR(36) NOT NULL, + REGION VARCHAR(100) NOT NULL, + CLIENT_ID CHAR(36) DEFAULT NULL, CREATED_DATE DATETIME(6) NOT NULL, PRIMARY KEY (LOCK_KEY, REGION) ); -CREATE TABLE sp_action -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - active BIT(1) DEFAULT NULL, - forced_time BIGINT DEFAULT NULL, - status INT NOT NULL, - distribution_set BIGINT NOT NULL, - target BIGINT NOT NULL, - rollout BIGINT DEFAULT NULL, - rollout_group BIGINT DEFAULT NULL, - action_type INT NOT NULL, - maintenance_cron_schedule VARCHAR(40) DEFAULT NULL, - maintenance_duration VARCHAR(40) DEFAULT NULL, - maintenance_time_zone VARCHAR(40) DEFAULT NULL, - external_ref VARCHAR(512) DEFAULT NULL, - weight INT NOT NULL, - initiated_by VARCHAR(64) NOT NULL, - last_action_status_code INT DEFAULT NULL, +CREATE TABLE sp_action ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + active BIT(1) DEFAULT NULL, + forced_time BIGINT DEFAULT NULL, + status INT NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT DEFAULT NULL, + rollout_group BIGINT DEFAULT NULL, + action_type INT NOT NULL, + maintenance_cron_schedule VARCHAR(40) DEFAULT NULL, + maintenance_duration VARCHAR(40) DEFAULT NULL, + maintenance_time_zone VARCHAR(40) DEFAULT NULL, + external_ref VARCHAR(512) DEFAULT NULL, + weight INT NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INT DEFAULT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_action_status -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - target_occurred_at BIGINT NOT NULL, - status INT NOT NULL, - action BIGINT NOT NULL, - code INT DEFAULT NULL, +CREATE TABLE sp_action_status ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + target_occurred_at BIGINT NOT NULL, + status INT NOT NULL, + action BIGINT NOT NULL, + code INT DEFAULT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_action_status_messages -( - action_status BIGINT NOT NULL, +CREATE TABLE sp_action_status_messages ( + action_status BIGINT NOT NULL, detail_message VARCHAR(512) NOT NULL ); -CREATE TABLE sp_artifact -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - md5_hash VARCHAR(32) DEFAULT NULL, - file_size BIGINT DEFAULT NULL, +CREATE TABLE sp_artifact ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + md5_hash VARCHAR(32) DEFAULT NULL, + file_size BIGINT DEFAULT NULL, provided_file_name VARCHAR(256) DEFAULT NULL, - sha1_hash VARCHAR(40) NOT NULL, - software_module BIGINT NOT NULL, - sha256_hash CHAR(64) DEFAULT NULL, + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64) DEFAULT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_distribution_set -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - version VARCHAR(64) NOT NULL, - deleted BIT(1) DEFAULT NULL, - required_migration_step BIT(1) DEFAULT NULL, - ds_type BIGINT NOT NULL, - valid TINYINT(1) DEFAULT NULL, - locked TINYINT(1) NOT NULL DEFAULT '1', +CREATE TABLE sp_distribution_set ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + version VARCHAR(64) NOT NULL, + deleted BIT(1) DEFAULT NULL, + required_migration_step BIT(1) DEFAULT NULL, + ds_type BIGINT NOT NULL, + valid TINYINT(1) DEFAULT NULL, + locked TINYINT(1) NOT NULL DEFAULT '1', PRIMARY KEY (id) ); -CREATE TABLE sp_distribution_set_tag -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, +CREATE TABLE sp_distribution_set_tag ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_distribution_set_type -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, - deleted BIT(1) DEFAULT NULL, - type_key VARCHAR(64) NOT NULL, +CREATE TABLE sp_distribution_set_type ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, + deleted BIT(1) DEFAULT NULL, + type_key VARCHAR(64) NOT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_ds_metadata -( - meta_key VARCHAR(128) NOT NULL, +CREATE TABLE sp_ds_metadata ( + meta_key VARCHAR(128) NOT NULL, meta_value VARCHAR(4000) DEFAULT NULL, - ds BIGINT NOT NULL, + ds BIGINT NOT NULL, PRIMARY KEY (ds, meta_key) ); -CREATE TABLE sp_ds_sm -( +CREATE TABLE sp_ds_sm ( ds_id BIGINT NOT NULL, sm_id BIGINT NOT NULL, PRIMARY KEY (ds_id, sm_id) ); -CREATE TABLE sp_ds_tag -( - ds BIGINT NOT NULL, +CREATE TABLE sp_ds_tag ( + ds BIGINT NOT NULL, tag BIGINT NOT NULL, PRIMARY KEY (ds, tag) ); -CREATE TABLE sp_ds_type_element -( - mandatory BIT(1) DEFAULT NULL, +CREATE TABLE sp_ds_type_element ( + mandatory BIT(1) DEFAULT NULL, distribution_set_type BIGINT NOT NULL, - software_module_type BIGINT NOT NULL, + software_module_type BIGINT NOT NULL, PRIMARY KEY (distribution_set_type, software_module_type) ); -CREATE TABLE sp_rollout -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - last_check BIGINT DEFAULT NULL, - group_theshold FLOAT DEFAULT NULL, - status INT NOT NULL, - distribution_set BIGINT NOT NULL, - target_filter VARCHAR(1024) DEFAULT NULL, - forced_time BIGINT DEFAULT NULL, - total_targets BIGINT DEFAULT NULL, - rollout_groups_created BIGINT DEFAULT NULL, - start_at BIGINT DEFAULT NULL, - deleted TINYINT(1) DEFAULT NULL, - action_type INT NOT NULL, - approval_decided_by VARCHAR(64) DEFAULT NULL, - approval_remark VARCHAR(255) DEFAULT NULL, - weight INT NOT NULL, +CREATE TABLE sp_rollout ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + last_check BIGINT DEFAULT NULL, + group_theshold FLOAT DEFAULT NULL, + status INT NOT NULL, + distribution_set BIGINT NOT NULL, + target_filter VARCHAR(1024) DEFAULT NULL, + forced_time BIGINT DEFAULT NULL, + total_targets BIGINT DEFAULT NULL, + rollout_groups_created BIGINT DEFAULT NULL, + start_at BIGINT DEFAULT NULL, + deleted TINYINT(1) DEFAULT NULL, + action_type INT NOT NULL, + approval_decided_by VARCHAR(64) DEFAULT NULL, + approval_remark VARCHAR(255) DEFAULT NULL, + weight INT NOT NULL, access_control_context VARCHAR(4096) DEFAULT NULL, - is_dynamic TINYINT(1) DEFAULT NULL, + is_dynamic TINYINT(1) DEFAULT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_rollout_group -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - error_condition INT DEFAULT NULL, - error_condition_exp VARCHAR(512) DEFAULT NULL, - error_action INT DEFAULT NULL, - error_action_exp VARCHAR(512) DEFAULT NULL, - success_condition INT NOT NULL, +CREATE TABLE sp_rollout_group ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + error_condition INT DEFAULT NULL, + error_condition_exp VARCHAR(512) DEFAULT NULL, + error_action INT DEFAULT NULL, + error_action_exp VARCHAR(512) DEFAULT NULL, + success_condition INT NOT NULL, success_condition_exp VARCHAR(512) NOT NULL, - success_action INT NOT NULL, - success_action_exp VARCHAR(512) DEFAULT NULL, - status INT NOT NULL, - parent BIGINT DEFAULT NULL, - rollout BIGINT NOT NULL, - total_targets BIGINT DEFAULT NULL, - target_percentage FLOAT DEFAULT NULL, - target_filter VARCHAR(1024) DEFAULT NULL, + success_action INT NOT NULL, + success_action_exp VARCHAR(512) DEFAULT NULL, + status INT NOT NULL, + parent BIGINT DEFAULT NULL, + rollout BIGINT NOT NULL, + total_targets BIGINT DEFAULT NULL, + target_percentage FLOAT DEFAULT NULL, + target_filter VARCHAR(1024) DEFAULT NULL, confirmation_required TINYINT(1) DEFAULT NULL, - is_dynamic TINYINT(1) NOT NULL DEFAULT '0', + is_dynamic TINYINT(1) NOT NULL DEFAULT '0', PRIMARY KEY (id) ); -CREATE TABLE sp_rollout_target_group -( - target BIGINT NOT NULL, +CREATE TABLE sp_rollout_target_group ( + target BIGINT NOT NULL, rollout_group BIGINT NOT NULL, PRIMARY KEY (rollout_group, target) ); -CREATE TABLE sp_sm_metadata -( - meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000) DEFAULT NULL, - sm BIGINT NOT NULL, - target_visible BIT(1) DEFAULT NULL, +CREATE TABLE sp_sm_metadata ( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000) DEFAULT NULL, + sm BIGINT NOT NULL, + target_visible BIT(1) DEFAULT NULL, PRIMARY KEY (meta_key, sm) ); -CREATE TABLE sp_software_module -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - version VARCHAR(64) NOT NULL, - deleted BIT(1) DEFAULT NULL, - vendor VARCHAR(256) DEFAULT NULL, - sm_type BIGINT NOT NULL, - encrypted TINYINT(1) DEFAULT NULL, - locked TINYINT(1) NOT NULL DEFAULT '1', +CREATE TABLE sp_software_module ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + version VARCHAR(64) NOT NULL, + deleted BIT(1) DEFAULT NULL, + vendor VARCHAR(256) DEFAULT NULL, + sm_type BIGINT NOT NULL, + encrypted TINYINT(1) DEFAULT NULL, + locked TINYINT(1) NOT NULL DEFAULT '1', PRIMARY KEY (id) ); -CREATE TABLE sp_software_module_type -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, - deleted BIT(1) DEFAULT NULL, - type_key VARCHAR(64) NOT NULL, - max_ds_assignments INT NOT NULL, - min_artifacts INT NOT NULL DEFAULT '0', +CREATE TABLE sp_software_module_type ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, + deleted BIT(1) DEFAULT NULL, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INT NOT NULL, + min_artifacts INT NOT NULL DEFAULT '0', PRIMARY KEY (id) ); -CREATE TABLE sp_target -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - controller_id VARCHAR(256) DEFAULT NULL, - sec_token VARCHAR(128) NOT NULL, - assigned_distribution_set BIGINT DEFAULT NULL, - install_date BIGINT DEFAULT NULL, - address VARCHAR(512) DEFAULT NULL, - last_target_query BIGINT DEFAULT NULL, - request_controller_attributes BIT(1) NOT NULL, - installed_distribution_set BIGINT DEFAULT NULL, - update_status INT NOT NULL, - target_type BIGINT DEFAULT NULL, - target_group VARCHAR(256) DEFAULT NULL, +CREATE TABLE sp_target ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + controller_id VARCHAR(256) DEFAULT NULL, + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT DEFAULT NULL, + install_date BIGINT DEFAULT NULL, + address VARCHAR(512) DEFAULT NULL, + last_target_query BIGINT DEFAULT NULL, + request_controller_attributes BIT(1) NOT NULL, + installed_distribution_set BIGINT DEFAULT NULL, + update_status INT NOT NULL, + target_type BIGINT DEFAULT NULL, + target_group VARCHAR(256) DEFAULT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_target_attributes -( - target BIGINT NOT NULL, +CREATE TABLE sp_target_attributes ( + target BIGINT NOT NULL, attribute_value VARCHAR(128) DEFAULT NULL, - attribute_key VARCHAR(128) NOT NULL, + attribute_key VARCHAR(128) NOT NULL, PRIMARY KEY (target, attribute_key) ); -CREATE TABLE sp_target_conf_status -( - id BIGINT NOT NULL AUTO_INCREMENT, - target BIGINT NOT NULL, - initiator VARCHAR(64) DEFAULT NULL, - remark VARCHAR(512) DEFAULT NULL, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, +CREATE TABLE sp_target_conf_status ( + id BIGINT NOT NULL AUTO_INCREMENT, + target BIGINT NOT NULL, + initiator VARCHAR(64) DEFAULT NULL, + remark VARCHAR(512) DEFAULT NULL, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_target_filter_query -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - name VARCHAR(128) DEFAULT NULL, - query VARCHAR(1024) NOT NULL, - auto_assign_distribution_set BIGINT DEFAULT NULL, - auto_assign_action_type INT DEFAULT NULL, - auto_assign_weight INT NOT NULL, - auto_assign_initiated_by VARCHAR(64) DEFAULT NULL, - confirmation_required TINYINT(1) DEFAULT NULL, - access_control_context VARCHAR(4096) DEFAULT NULL, +CREATE TABLE sp_target_filter_query ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + name VARCHAR(128) DEFAULT NULL, + query VARCHAR(1024) NOT NULL, + auto_assign_distribution_set BIGINT DEFAULT NULL, + auto_assign_action_type INT DEFAULT NULL, + auto_assign_weight INT NOT NULL, + auto_assign_initiated_by VARCHAR(64) DEFAULT NULL, + confirmation_required TINYINT(1) DEFAULT NULL, + access_control_context VARCHAR(4096) DEFAULT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_target_metadata -( - meta_key VARCHAR(128) NOT NULL, +CREATE TABLE sp_target_metadata ( + meta_key VARCHAR(128) NOT NULL, meta_value VARCHAR(4000) DEFAULT NULL, - target BIGINT NOT NULL, + target BIGINT NOT NULL, PRIMARY KEY (target, meta_key) ); -CREATE TABLE sp_target_tag -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, +CREATE TABLE sp_target_tag ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_target_target_tag -( +CREATE TABLE sp_target_target_tag ( target BIGINT NOT NULL, - tag BIGINT NOT NULL, + tag BIGINT NOT NULL, PRIMARY KEY (target, tag) ); -CREATE TABLE sp_target_type -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, - type_key VARCHAR(64) NOT NULL DEFAULT (_utf8mb4'_'), +CREATE TABLE sp_target_type ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, + last_modified_by VARCHAR(64) DEFAULT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512) DEFAULT NULL, + name VARCHAR(128) DEFAULT NULL, + colour VARCHAR(16) DEFAULT NULL, + type_key VARCHAR(64) NOT NULL DEFAULT (_utf8mb4'_'), PRIMARY KEY (id) ); -CREATE TABLE sp_target_type_ds_type -( - target_type BIGINT NOT NULL, +CREATE TABLE sp_target_type_ds_type ( + target_type BIGINT NOT NULL, distribution_set_type BIGINT NOT NULL, PRIMARY KEY (target_type, distribution_set_type) ); -CREATE TABLE sp_tenant -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, +CREATE TABLE sp_tenant ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - default_ds_type BIGINT NOT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + default_ds_type BIGINT NOT NULL, PRIMARY KEY (id) ); -CREATE TABLE sp_tenant_configuration -( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, +CREATE TABLE sp_tenant_configuration ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT DEFAULT NULL, + created_by VARCHAR(64) DEFAULT NULL, + last_modified_at BIGINT DEFAULT NULL, last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - conf_key VARCHAR(128) NOT NULL, - conf_value VARCHAR(512) NOT NULL, + optlock_revision BIGINT DEFAULT NULL, + tenant VARCHAR(40) NOT NULL, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL, PRIMARY KEY (id) ); --- Indexes CREATE INDEX sp_idx_action_01 ON sp_action (tenant, distribution_set); CREATE INDEX sp_idx_action_02 ON sp_action (tenant, target, active); CREATE INDEX sp_idx_action_prim ON sp_action (tenant, id); @@ -493,168 +465,69 @@ CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant, id); CREATE INDEX fk_tenant_default_ds_type ON sp_tenant (default_ds_type); CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant); --- Foreign Key Constraints ALTER TABLE sp_action - ADD CONSTRAINT fk_action_ds - FOREIGN KEY (distribution_set) - REFERENCES sp_distribution_set (id); - + ADD CONSTRAINT fk_action_ds FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rollout - FOREIGN KEY (rollout) - REFERENCES sp_rollout (id); - + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rolloutgroup - FOREIGN KEY (rollout_group) - REFERENCES sp_rollout_group (id); - + ADD CONSTRAINT fk_action_rolloutgroup FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_targ_act_hist_targ - FOREIGN KEY (target) - REFERENCES sp_target (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_targ_act_hist_targ FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_action_status - ADD CONSTRAINT fk_act_stat_action - FOREIGN KEY (action) - REFERENCES sp_action (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_act_stat_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE; ALTER TABLE sp_action_status_messages - ADD CONSTRAINT fk_stat_msg_act_stat - FOREIGN KEY (action_status) - REFERENCES sp_action_status (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_stat_msg_act_stat FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE; ALTER TABLE sp_artifact - ADD CONSTRAINT fk_assigned_sm - FOREIGN KEY (software_module) - REFERENCES sp_software_module (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_assigned_sm FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE; ALTER TABLE sp_distribution_set - ADD CONSTRAINT fk_ds_dstype_ds - FOREIGN KEY (ds_type) - REFERENCES sp_distribution_set_type (id); - + ADD CONSTRAINT fk_ds_dstype_ds FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id); ALTER TABLE sp_ds_metadata - ADD CONSTRAINT fk_metadata_ds - FOREIGN KEY (ds) - REFERENCES sp_distribution_set (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_module_ds - FOREIGN KEY (ds_id) - REFERENCES sp_distribution_set (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_ds_module_ds FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_module_module - FOREIGN KEY (sm_id) - REFERENCES sp_software_module (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_ds_module_module FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE; ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_dstag_ds - FOREIGN KEY (ds) - REFERENCES sp_distribution_set (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_ds_dstag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_dstag_tag - FOREIGN KEY (tag) - REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_ds_dstag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_element - FOREIGN KEY (distribution_set_type) - REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_ds_type_element_element FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_smtype - FOREIGN KEY (software_module_type) - REFERENCES sp_software_module_type (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_ds_type_element_smtype FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE; ALTER TABLE sp_rollout - ADD CONSTRAINT fk_rollout_ds - FOREIGN KEY (distribution_set) - REFERENCES sp_distribution_set (id); - + ADD CONSTRAINT fk_rollout_ds FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_rollout_group - ADD CONSTRAINT fk_rolloutgroup_rollout - FOREIGN KEY (rollout) - REFERENCES sp_rollout (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_rolloutgroup_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE; ALTER TABLE sp_rollout_target_group - ADD CONSTRAINT fk_rollouttargetgroup_rolloutgroup - FOREIGN KEY (rollout_group) - REFERENCES sp_rollout_group (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_rollouttargetgroup_rolloutgroup FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE; ALTER TABLE sp_rollout_target_group - ADD CONSTRAINT fk_rollouttargetgroup_target - FOREIGN KEY (target) - REFERENCES sp_target (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_rollouttargetgroup_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_sm_metadata - ADD CONSTRAINT fk_metadata_sw - FOREIGN KEY (sm) - REFERENCES sp_software_module (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_metadata_sw FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE; ALTER TABLE sp_software_module - ADD CONSTRAINT fk_module_type - FOREIGN KEY (sm_type) - REFERENCES sp_software_module_type (id); - + ADD CONSTRAINT fk_module_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_assign_ds - FOREIGN KEY (assigned_distribution_set) - REFERENCES sp_distribution_set (id); - + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_inst_ds - FOREIGN KEY (installed_distribution_set) - REFERENCES sp_distribution_set (id); - + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_relation_target_type - FOREIGN KEY (target_type) - REFERENCES sp_target_type (id) ON DELETE SET NULL; - + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL; ALTER TABLE sp_target_attributes - ADD CONSTRAINT fk_targ_attrib_target - FOREIGN KEY (target) - REFERENCES sp_target (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_targ_attrib_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_target_conf_status - ADD CONSTRAINT fk_target_auto_conf - FOREIGN KEY (target) - REFERENCES sp_target (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_target_auto_conf FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_target_filter_query - ADD CONSTRAINT fk_filter_auto_assign_ds - FOREIGN KEY (auto_assign_distribution_set) - REFERENCES sp_distribution_set (id) ON DELETE SET NULL; - + ADD CONSTRAINT fk_filter_auto_assign_ds FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL; ALTER TABLE sp_target_metadata - ADD CONSTRAINT fk_metadata_target - FOREIGN KEY (target) - REFERENCES sp_target (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_targ_targtag_tag - FOREIGN KEY (tag) - REFERENCES sp_target_tag (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_targ_targtag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE; ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_targ_targtag_target - FOREIGN KEY (target) - REFERENCES sp_target (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_targ_targtag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_relation_ds_type - FOREIGN KEY (distribution_set_type) - REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_target_type_relation_ds_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_relation_target_type - FOREIGN KEY (target_type) - REFERENCES sp_target_type (id) ON DELETE CASCADE; - + ADD CONSTRAINT fk_target_type_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE; ALTER TABLE sp_tenant - ADD CONSTRAINT fk_tenant_md_default_ds_type - FOREIGN KEY (default_ds_type) - REFERENCES sp_distribution_set_type (id); \ No newline at end of file + ADD CONSTRAINT fk_tenant_md_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id); \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql index 940a21d24b..03b8cb78d7 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql @@ -1,55 +1,54 @@ +-- hawkbit 1.0.0 PostgreSQL database migration script baseline -- + CREATE SEQUENCE sp_action_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_action -( - id BIGINT DEFAULT nextval('sp_action_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - active boolean, - forced_time BIGINT, - status INTEGER NOT NULL, - distribution_set BIGINT NOT NULL, - target BIGINT NOT NULL, - rollout BIGINT, - rollout_group BIGINT, - action_type INTEGER NOT NULL, +CREATE TABLE sp_action ( + id BIGINT DEFAULT nextval('sp_action_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + active boolean, + forced_time BIGINT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT, + rollout_group BIGINT, + action_type INTEGER NOT NULL, maintenance_cron_schedule VARCHAR(40), - maintenance_duration VARCHAR(40), - maintenance_time_zone VARCHAR(40), - external_ref VARCHAR(512), - weight INTEGER NOT NULL, - initiated_by VARCHAR(64) NOT NULL, - last_action_status_code INTEGER + maintenance_duration VARCHAR(40), + maintenance_time_zone VARCHAR(40), + external_ref VARCHAR(512), + weight INTEGER NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INTEGER ); CREATE SEQUENCE sp_action_status_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_action_status -( - id BIGINT DEFAULT nextval('sp_action_status_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - target_occurred_at BIGINT NOT NULL, - status INTEGER NOT NULL, - action BIGINT NOT NULL, - code INTEGER +CREATE TABLE sp_action_status ( + id BIGINT DEFAULT nextval('sp_action_status_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + target_occurred_at BIGINT NOT NULL, + status INTEGER NOT NULL, + action BIGINT NOT NULL, + code INTEGER ); -CREATE TABLE sp_action_status_messages -( - action_status BIGINT NOT NULL, +CREATE TABLE sp_action_status_messages ( + action_status BIGINT NOT NULL, detail_message VARCHAR(512) NOT NULL ); @@ -57,195 +56,182 @@ CREATE SEQUENCE sp_artifact_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_artifact -( - id BIGINT DEFAULT nextval('sp_artifact_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - md5_hash VARCHAR(32), - file_size BIGINT, +CREATE TABLE sp_artifact ( + id BIGINT DEFAULT nextval('sp_artifact_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + md5_hash VARCHAR(32), + file_size BIGINT, provided_file_name VARCHAR(256), - sha1_hash VARCHAR(40) NOT NULL, - software_module BIGINT NOT NULL, - sha256_hash CHAR(64) + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64) ); CREATE SEQUENCE sp_distribution_set_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_distribution_set -( - id BIGINT DEFAULT nextval('sp_distribution_set_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - version VARCHAR(64) NOT NULL, - deleted boolean, +CREATE TABLE sp_distribution_set ( + id BIGINT DEFAULT nextval('sp_distribution_set_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + version VARCHAR(64) NOT NULL, + deleted boolean, required_migration_step boolean, - ds_type BIGINT NOT NULL, - valid boolean, - locked boolean DEFAULT true NOT NULL + ds_type BIGINT NOT NULL, + valid boolean, + locked boolean DEFAULT TRUE NOT NULL ); CREATE SEQUENCE sp_distributionset_tag_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_distribution_set_tag -( - id BIGINT DEFAULT nextval('sp_distributionset_tag_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_distribution_set_tag ( + id BIGINT DEFAULT nextval('sp_distributionset_tag_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16) + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16) ); CREATE SEQUENCE sp_distribution_set_type_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_distribution_set_type -( - id BIGINT DEFAULT nextval('sp_distribution_set_type_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_distribution_set_type ( + id BIGINT DEFAULT nextval('sp_distribution_set_type_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16), - deleted boolean, - type_key VARCHAR(64) NOT NULL + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16), + deleted boolean, + type_key VARCHAR(64) NOT NULL ); -CREATE TABLE sp_ds_metadata -( - meta_key VARCHAR(128) NOT NULL, +CREATE TABLE sp_ds_metadata ( + meta_key VARCHAR(128) NOT NULL, meta_value VARCHAR(4000), - ds BIGINT NOT NULL + ds BIGINT NOT NULL ); -CREATE TABLE sp_ds_sm -( +CREATE TABLE sp_ds_sm ( ds_id BIGINT NOT NULL, sm_id BIGINT NOT NULL ); -CREATE TABLE sp_ds_tag -( - ds BIGINT NOT NULL, +CREATE TABLE sp_ds_tag ( + ds BIGINT NOT NULL, tag BIGINT NOT NULL ); -CREATE TABLE sp_ds_type_element -( - mandatory boolean, +CREATE TABLE sp_ds_type_element ( + mandatory boolean, distribution_set_type BIGINT NOT NULL, - software_module_type BIGINT NOT NULL + software_module_type BIGINT NOT NULL ); -CREATE TABLE sp_lock -( - lock_key CHAR(36) NOT NULL, - region VARCHAR(100) NOT NULL, - client_id CHAR(36), - created_date timestamp without time zone NOT NULL +CREATE TABLE sp_lock ( + lock_key CHAR(36) NOT NULL, + region VARCHAR(100) NOT NULL, + client_id CHAR(36), + created_date TIMESTAMP WITHOUT TIME ZONE NOT NULL ); CREATE SEQUENCE sp_rollout_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_rollout -( - id BIGINT DEFAULT nextval('sp_rollout_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - last_check BIGINT, - group_theshold real, - status INTEGER NOT NULL, - distribution_set BIGINT NOT NULL, - target_filter VARCHAR(1024), - forced_time BIGINT, - total_targets BIGINT, +CREATE TABLE sp_rollout ( + id BIGINT DEFAULT nextval('sp_rollout_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + last_check BIGINT, + group_theshold REAL, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target_filter VARCHAR(1024), + forced_time BIGINT, + total_targets BIGINT, rollout_groups_created BIGINT, - start_at BIGINT, - deleted boolean, - action_type INTEGER NOT NULL, - approval_decided_by VARCHAR(64), - approval_remark VARCHAR(255), - weight INTEGER NOT NULL, + start_at BIGINT, + deleted boolean, + action_type INTEGER NOT NULL, + approval_decided_by VARCHAR(64), + approval_remark VARCHAR(255), + weight INTEGER NOT NULL, access_control_context VARCHAR(4096), - is_dynamic boolean + is_dynamic boolean ); CREATE SEQUENCE sp_rolloutgroup_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_rollout_group -( - id BIGINT DEFAULT nextval('sp_rolloutgroup_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - error_condition INTEGER, - error_condition_exp VARCHAR(512), - error_action INTEGER, - error_action_exp VARCHAR(512), - success_condition INTEGER NOT NULL, - success_condition_exp VARCHAR(512) NOT NULL, - success_action INTEGER NOT NULL, - success_action_exp VARCHAR(512), - status INTEGER NOT NULL, - parent BIGINT, - rollout BIGINT NOT NULL, - total_targets BIGINT, - target_percentage real, - target_filter VARCHAR(1024), +CREATE TABLE sp_rollout_group ( + id BIGINT DEFAULT nextval('sp_rolloutgroup_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + error_condition INTEGER, + error_condition_exp VARCHAR(512), + error_action INTEGER, + error_action_exp VARCHAR(512), + success_condition INTEGER NOT NULL, + success_condition_exp VARCHAR(512) NOT NULL, + success_action INTEGER NOT NULL, + success_action_exp VARCHAR(512), + status INTEGER NOT NULL, + parent BIGINT, + rollout BIGINT NOT NULL, + total_targets BIGINT, + target_percentage REAL, + target_filter VARCHAR(1024), confirmation_required boolean, - is_dynamic boolean DEFAULT false NOT NULL + is_dynamic boolean DEFAULT FALSE NOT NULL ); -CREATE TABLE sp_rollout_target_group -( - target BIGINT NOT NULL, +CREATE TABLE sp_rollout_target_group ( + target BIGINT NOT NULL, rollout_group BIGINT NOT NULL ); -CREATE TABLE sp_sm_metadata -( - meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000), - sm BIGINT NOT NULL, +CREATE TABLE sp_sm_metadata ( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + sm BIGINT NOT NULL, target_visible boolean ); @@ -253,92 +239,87 @@ CREATE SEQUENCE sp_base_software_module_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_software_module -( - id BIGINT DEFAULT nextval('sp_base_software_module_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_software_module ( + id BIGINT DEFAULT nextval('sp_base_software_module_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - version VARCHAR(64) NOT NULL, - deleted boolean, - vendor VARCHAR(256), - sm_type BIGINT NOT NULL, - encrypted boolean, - locked boolean DEFAULT true NOT NULL + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + version VARCHAR(64) NOT NULL, + deleted boolean, + vendor VARCHAR(256), + sm_type BIGINT NOT NULL, + encrypted boolean, + locked boolean DEFAULT TRUE NOT NULL ); CREATE SEQUENCE sp_software_module_type_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_software_module_type -( - id BIGINT DEFAULT nextval('sp_software_module_type_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16), - deleted boolean, - type_key VARCHAR(64) NOT NULL, - max_ds_assignments INTEGER NOT NULL, - min_artifacts INTEGER DEFAULT 0 NOT NULL +CREATE TABLE sp_software_module_type ( + id BIGINT DEFAULT nextval('sp_software_module_type_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16), + deleted boolean, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INTEGER NOT NULL, + min_artifacts INTEGER DEFAULT 0 NOT NULL ); CREATE SEQUENCE sp_target_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_target -( - id BIGINT DEFAULT nextval('sp_target_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - controller_id VARCHAR(256), - sec_token VARCHAR(128) NOT NULL, - assigned_distribution_set BIGINT, - install_date BIGINT, - address VARCHAR(512), - last_target_query BIGINT, - request_controller_attributes boolean NOT NULL, - installed_distribution_set BIGINT, - update_status INTEGER NOT NULL, - target_type BIGINT, - target_group VARCHAR(256) +CREATE TABLE sp_target ( + id BIGINT DEFAULT nextval('sp_target_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + controller_id VARCHAR(256), + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT, + install_date BIGINT, + address VARCHAR(512), + last_target_query BIGINT, + request_controller_attributes boolean NOT NULL, + installed_distribution_set BIGINT, + update_status INTEGER NOT NULL, + target_type BIGINT, + target_group VARCHAR(256) ); -CREATE TABLE sp_target_attributes -( - target BIGINT NOT NULL, +CREATE TABLE sp_target_attributes ( + target BIGINT NOT NULL, attribute_value VARCHAR(128), - attribute_key VARCHAR(128) NOT NULL + attribute_key VARCHAR(128) NOT NULL ); -CREATE TABLE sp_target_conf_status -( - id BIGINT NOT NULL, - target BIGINT NOT NULL, - initiator VARCHAR(64), - remark VARCHAR(512), - tenant VARCHAR(40) NOT NULL, - created_at BIGINT NOT NULL, - created_by VARCHAR(64) NOT NULL, - last_modified_at BIGINT NOT NULL, +CREATE TABLE sp_target_conf_status ( + id BIGINT NOT NULL, + target BIGINT NOT NULL, + initiator VARCHAR(64), + remark VARCHAR(512), + tenant VARCHAR(40) NOT NULL, + created_at BIGINT NOT NULL, + created_by VARCHAR(64) NOT NULL, + last_modified_at BIGINT NOT NULL, last_modified_by VARCHAR(64) NOT NULL, optlock_revision BIGINT ); @@ -353,78 +334,72 @@ CREATE SEQUENCE sp_target_filter_query_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_target_filter_query -( - id BIGINT DEFAULT nextval('sp_target_filter_query_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - name VARCHAR(128), - query VARCHAR(1024) NOT NULL, +CREATE TABLE sp_target_filter_query ( + id BIGINT DEFAULT nextval('sp_target_filter_query_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + name VARCHAR(128), + query VARCHAR(1024) NOT NULL, auto_assign_distribution_set BIGINT, - auto_assign_action_type INTEGER, - auto_assign_weight INTEGER NOT NULL, - auto_assign_initiated_by VARCHAR(64), - confirmation_required boolean, - access_control_context VARCHAR(4096) + auto_assign_action_type INTEGER, + auto_assign_weight INTEGER NOT NULL, + auto_assign_initiated_by VARCHAR(64), + confirmation_required boolean, + access_control_context VARCHAR(4096) ); -CREATE TABLE sp_target_metadata -( - meta_key VARCHAR(128) NOT NULL, +CREATE TABLE sp_target_metadata ( + meta_key VARCHAR(128) NOT NULL, meta_value VARCHAR(4000), - target BIGINT NOT NULL + target BIGINT NOT NULL ); CREATE SEQUENCE sp_target_tag_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_target_tag -( - id BIGINT DEFAULT nextval('sp_target_tag_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_target_tag ( + id BIGINT DEFAULT nextval('sp_target_tag_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16) + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16) ); -CREATE TABLE sp_target_target_tag -( +CREATE TABLE sp_target_target_tag ( target BIGINT NOT NULL, - tag BIGINT NOT NULL + tag BIGINT NOT NULL ); CREATE SEQUENCE sp_target_type_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_target_type -( - id BIGINT DEFAULT nextval('sp_target_type_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_target_type ( + id BIGINT DEFAULT nextval('sp_target_type_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16), - type_key VARCHAR(64) DEFAULT '_'::VARCHAR NOT NULL + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16), + type_key VARCHAR(64) DEFAULT '_'::VARCHAR NOT NULL ); -CREATE TABLE sp_target_type_ds_type -( - target_type BIGINT NOT NULL, +CREATE TABLE sp_target_type_ds_type ( + target_type BIGINT NOT NULL, distribution_set_type BIGINT NOT NULL ); @@ -432,461 +407,220 @@ CREATE SEQUENCE sp_tenant_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_tenant -( - id BIGINT DEFAULT nextval('sp_tenant_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_tenant ( + id BIGINT DEFAULT nextval('sp_tenant_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - default_ds_type BIGINT NOT NULL + tenant VARCHAR(40) NOT NULL, + default_ds_type BIGINT NOT NULL ); CREATE SEQUENCE sp_tenant_configuration_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_tenant_configuration -( - id BIGINT DEFAULT nextval('sp_tenant_configuration_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), +CREATE TABLE sp_tenant_configuration ( + id BIGINT DEFAULT nextval('sp_tenant_configuration_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - conf_key VARCHAR(128) NOT NULL, - conf_value VARCHAR(512) NOT NULL + tenant VARCHAR(40) NOT NULL, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL ); ALTER TABLE ONLY sp_target_conf_status ALTER COLUMN id SET DEFAULT nextval('sp_target_conf_status_id_seq'); - ALTER TABLE ONLY sp_action ADD CONSTRAINT pk_action PRIMARY KEY (id); - ALTER TABLE ONLY sp_action_status ADD CONSTRAINT pk_action_status PRIMARY KEY (id); - ALTER TABLE ONLY sp_artifact ADD CONSTRAINT pk_artifact PRIMARY KEY (id); - ALTER TABLE ONLY sp_distribution_set ADD CONSTRAINT pk_distribution_set PRIMARY KEY (id); - ALTER TABLE ONLY sp_distribution_set_tag ADD CONSTRAINT pk_distribution_set_tag PRIMARY KEY (id); - ALTER TABLE ONLY sp_distribution_set_type ADD CONSTRAINT pk_distribution_set_type PRIMARY KEY (id); - ALTER TABLE ONLY sp_ds_metadata ADD CONSTRAINT pk_ds_metadata PRIMARY KEY (ds, meta_key); - ALTER TABLE ONLY sp_ds_sm ADD CONSTRAINT pk_ds_sm PRIMARY KEY (ds_id, sm_id); - ALTER TABLE ONLY sp_ds_tag ADD CONSTRAINT pk_ds_tag PRIMARY KEY (ds, tag); - ALTER TABLE ONLY sp_ds_type_element ADD CONSTRAINT pk_ds_type_element PRIMARY KEY (distribution_set_type, software_module_type); - ALTER TABLE ONLY sp_rollout ADD CONSTRAINT pk_rollout PRIMARY KEY (id); - ALTER TABLE ONLY sp_rollout_group ADD CONSTRAINT pk_rollout_group PRIMARY KEY (id); - ALTER TABLE ONLY sp_rollout_target_group ADD CONSTRAINT pk_rollout_target_group PRIMARY KEY (rollout_group, target); - ALTER TABLE ONLY sp_sm_metadata ADD CONSTRAINT pk_sm_metadata PRIMARY KEY (meta_key, sm); - ALTER TABLE ONLY sp_software_module ADD CONSTRAINT pk_software_module PRIMARY KEY (id); - ALTER TABLE ONLY sp_software_module_type ADD CONSTRAINT pk_software_module_type PRIMARY KEY (id); - ALTER TABLE ONLY sp_target_conf_status ADD CONSTRAINT pk_sp_target_conf_status PRIMARY KEY (id); - ALTER TABLE ONLY sp_target_type ADD CONSTRAINT pk_sp_target_type PRIMARY KEY (id); - ALTER TABLE ONLY sp_target ADD CONSTRAINT pk_target PRIMARY KEY (id); - ALTER TABLE ONLY sp_target_attributes ADD CONSTRAINT pk_target_attributes PRIMARY KEY (target, attribute_key); - ALTER TABLE ONLY sp_target_filter_query ADD CONSTRAINT pk_target_filter_query PRIMARY KEY (id); - ALTER TABLE ONLY sp_target_metadata ADD CONSTRAINT pk_target_metadata PRIMARY KEY (target, meta_key); - ALTER TABLE ONLY sp_target_tag ADD CONSTRAINT pk_target_tag PRIMARY KEY (id); - ALTER TABLE ONLY sp_target_target_tag ADD CONSTRAINT pk_target_target_tag PRIMARY KEY (target, tag); - ALTER TABLE ONLY sp_tenant ADD CONSTRAINT pk_tenant PRIMARY KEY (id); - ALTER TABLE ONLY sp_tenant_configuration ADD CONSTRAINT pk_tenant_configuration PRIMARY KEY (id); - - ALTER TABLE ONLY sp_lock ADD CONSTRAINT sp_lock_pk PRIMARY KEY (lock_key, region); - ALTER TABLE ONLY sp_distribution_set - ADD CONSTRAINT uk_distribution_set UNIQUE (tenant, name, version, ds_type); - + ADD CONSTRAINT uk_distribution_set UNIQUE (tenant, NAME, version, ds_type); ALTER TABLE ONLY sp_distribution_set_tag - ADD CONSTRAINT uk_distribution_set_tag UNIQUE (name, tenant); - + ADD CONSTRAINT uk_distribution_set_tag UNIQUE (NAME, tenant); ALTER TABLE ONLY sp_distribution_set_type - ADD CONSTRAINT uk_distribution_set_type_name UNIQUE (name, tenant); - + ADD CONSTRAINT uk_distribution_set_type_name UNIQUE (NAME, tenant); ALTER TABLE ONLY sp_distribution_set_type ADD CONSTRAINT uk_distribution_set_type_type_key UNIQUE (type_key, tenant); - ALTER TABLE ONLY sp_rollout_group - ADD CONSTRAINT uk_rollout_group UNIQUE (name, rollout, tenant); - + ADD CONSTRAINT uk_rollout_group UNIQUE (NAME, rollout, tenant); ALTER TABLE ONLY sp_rollout - ADD CONSTRAINT uk_rollout_sp_rollout UNIQUE (name, tenant); - + ADD CONSTRAINT uk_rollout_sp_rollout UNIQUE (NAME, tenant); ALTER TABLE ONLY sp_software_module - ADD CONSTRAINT uk_software_module UNIQUE (sm_type, name, version, tenant); - + ADD CONSTRAINT uk_software_module UNIQUE (sm_type, NAME, version, tenant); ALTER TABLE ONLY sp_software_module_type - ADD CONSTRAINT uk_software_module_type_name UNIQUE (name, tenant); - + ADD CONSTRAINT uk_software_module_type_name UNIQUE (NAME, tenant); ALTER TABLE ONLY sp_software_module_type ADD CONSTRAINT uk_software_module_type_type_key UNIQUE (type_key, tenant); - ALTER TABLE ONLY sp_target ADD CONSTRAINT uk_target UNIQUE (controller_id, tenant); - ALTER TABLE ONLY sp_target_filter_query - ADD CONSTRAINT uk_target_filter_query UNIQUE (name, tenant); - + ADD CONSTRAINT uk_target_filter_query UNIQUE (NAME, tenant); ALTER TABLE ONLY sp_target_type - ADD CONSTRAINT uk_target_name UNIQUE (name, tenant); - + ADD CONSTRAINT uk_target_name UNIQUE (NAME, tenant); ALTER TABLE ONLY sp_target_tag - ADD CONSTRAINT uk_target_tag UNIQUE (name, tenant); - + ADD CONSTRAINT uk_target_tag UNIQUE (NAME, tenant); ALTER TABLE ONLY sp_target_type ADD CONSTRAINT uk_target_type_key UNIQUE (type_key, tenant); - ALTER TABLE ONLY sp_tenant ADD CONSTRAINT uk_tenant UNIQUE (tenant); - ALTER TABLE ONLY sp_tenant_configuration ADD CONSTRAINT uk_tenant_configuration UNIQUE (conf_key, tenant); CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages USING btree (action_status); - CREATE INDEX sp_idx_action_01_sp_action ON sp_action USING btree (tenant, distribution_set); - CREATE INDEX sp_idx_action_02_sp_action ON sp_action USING btree (tenant, target, active); - CREATE INDEX sp_idx_action_external_ref_sp_action ON sp_action USING btree (external_ref); - CREATE INDEX sp_idx_action_prim_sp_action ON sp_action USING btree (tenant, id); - -CREATE INDEX sp_idx_action_status_02_sp_action_status ON sp_action_status USING btree (tenant, action, status); - +CREATE INDEX sp_idx_action_status_02_sp_action_status ON sp_action_status USING btree (tenant, ACTION, status); CREATE INDEX sp_idx_action_status_03 ON sp_action_status USING btree (tenant, code); - CREATE INDEX sp_idx_action_status_prim_sp_action_status ON sp_action_status USING btree (tenant, id); - CREATE INDEX sp_idx_action_target ON sp_action USING btree (target); - CREATE INDEX sp_idx_artifact_01_sp_artifact ON sp_artifact USING btree (tenant, software_module); - CREATE INDEX sp_idx_artifact_02_sp_artifact ON sp_artifact USING btree (tenant, sha1_hash); - CREATE INDEX sp_idx_artifact_prim_sp_artifact ON sp_artifact USING btree (tenant, id); - CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set USING btree (tenant, deleted); - CREATE INDEX sp_idx_distribution_set_prim_sp_distribution_set ON sp_distribution_set USING btree (tenant, id); - -CREATE INDEX sp_idx_distribution_set_tag_01_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, name); - +CREATE INDEX sp_idx_distribution_set_tag_01_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, NAME); CREATE INDEX sp_idx_distribution_set_tag_prim_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, id); - CREATE INDEX sp_idx_distribution_set_type_01_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, deleted); - CREATE INDEX sp_idx_distribution_set_type_prim_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, id); - CREATE INDEX sp_idx_rollout_group_parent ON sp_rollout_group USING btree (parent); - CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout USING btree (tenant, status); - CREATE INDEX sp_idx_rollout_target_group_target ON sp_rollout_target_group USING btree (target); - -CREATE INDEX sp_idx_software_module_01 ON sp_software_module USING btree (tenant, deleted, name, version); - +CREATE INDEX sp_idx_software_module_01 ON sp_software_module USING btree (tenant, deleted, NAME, version); CREATE INDEX sp_idx_software_module_02 ON sp_software_module USING btree (tenant, deleted, sm_type); - CREATE INDEX sp_idx_software_module_prim ON sp_software_module USING btree (tenant, id); - CREATE INDEX sp_idx_software_module_type_01_sp_software_module_type ON sp_software_module_type USING btree (tenant, deleted); - CREATE INDEX sp_idx_software_module_type_prim_sp_software_module_type ON sp_software_module_type USING btree (tenant, id); - -CREATE INDEX sp_idx_target_01_sp_target ON sp_target USING btree (tenant, name, assigned_distribution_set); - +CREATE INDEX sp_idx_target_01_sp_target ON sp_target USING btree (tenant, NAME, assigned_distribution_set); CREATE INDEX sp_idx_target_03_sp_target ON sp_target USING btree (tenant, controller_id, assigned_distribution_set); - CREATE INDEX sp_idx_target_04_sp_target ON sp_target USING btree (tenant, created_at); - CREATE INDEX sp_idx_target_05 ON sp_target USING btree (tenant, last_modified_at); - CREATE INDEX sp_idx_target_attributes_target_id ON sp_target_attributes USING btree (target); - CREATE INDEX sp_idx_target_group ON sp_target USING btree (tenant, target_group); - CREATE INDEX sp_idx_target_prim_sp_target ON sp_target USING btree (tenant, id); - -CREATE INDEX sp_idx_target_tag_01_sp_target_tag ON sp_target_tag USING btree (tenant, name); - +CREATE INDEX sp_idx_target_tag_01_sp_target_tag ON sp_target_tag USING btree (tenant, NAME); CREATE INDEX sp_idx_target_tag_prim_sp_target_tag ON sp_target_tag USING btree (tenant, id); - CREATE INDEX sp_idx_target_type_prim ON sp_target_type USING btree (tenant, id); - CREATE INDEX sp_idx_tenant_prim_sp_tenant ON sp_tenant USING btree (tenant, id); ALTER TABLE ONLY sp_action - ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_action - ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_action - ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_action_status - ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_action_status_action FOREIGN KEY (ACTION) REFERENCES sp_action(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_action_status_messages - ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_action - ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_artifact - ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_distribution_set - ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_ds_metadata - ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_ds_sm - ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_ds_sm - ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_ds_tag - ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_ds_tag - ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_rollout - ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_rollout_group - ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_rollout_target_group - ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_rollout_target_group - ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_sm_metadata - ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_software_module - ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_tenant - ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_target - ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_target_attributes - ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_target_filter_query - ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set(id) ON -UPDATE RESTRICT -ON -DELETE -SET NULL; - + ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE SET NULL; ALTER TABLE ONLY sp_target - ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set(id) ON -UPDATE RESTRICT -ON -DELETE -RESTRICT; - + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT; ALTER TABLE ONLY sp_target_metadata - ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_target - ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON -UPDATE RESTRICT -ON -DELETE -SET NULL; - + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON UPDATE RESTRICT ON DELETE SET NULL; ALTER TABLE ONLY sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; - + ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; ALTER TABLE ONLY sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON -UPDATE RESTRICT -ON -DELETE -CASCADE; \ No newline at end of file + ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; \ No newline at end of file diff --git a/intellij_codeformatter.xml b/intellij_codeformatter.xml index 628f202ea9..301507c1df 100644 --- a/intellij_codeformatter.xml +++ b/intellij_codeformatter.xml @@ -1,429 +1,447 @@ - \ No newline at end of file From f0fbcd823b117f4d0d48682a38fe4c4d7b7d476f Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Tue, 3 Feb 2026 16:31:15 +0200 Subject: [PATCH 3/4] Organize and unify --- docs/quick-start.md | 2 +- .../H2/B1_20_0__1.0.0_baseline__H2.sql | 558 ++++++------ .../MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql | 792 ++++++++-------- .../B1_20_0__1.0.0_baseline__POSTGRESQL.sql | 854 +++++++++--------- 4 files changed, 1057 insertions(+), 1149 deletions(-) diff --git a/docs/quick-start.md b/docs/quick-start.md index d0284b5510..52aa715a7e 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -152,7 +152,7 @@ Then you will get H2 console available at '/h2-console' (Database available at ' You could also start the **hawkBit UI** by: ```bash -$ java -jar ./hawkbit--ui/target/hawkbit-ui-0-SNAPSHOT.jar +$ java -jar ./hawkbit-ui/target/hawkbit-ui-0-SNAPSHOT.jar ``` --- diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql index 89bddb9b6c..02b350e3c1 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql @@ -1,20 +1,31 @@ -- hawkbit 1.0.0 H2 database migration script baseline -- -CREATE TABLE sp_target_conf_status ( +CREATE TABLE SP_LOCK ( -- spring table -- + LOCK_KEY CHAR(36) NOT NULL, + REGION VARCHAR(100) NOT NULL, + CLIENT_ID CHAR(36), + CREATED_DATE TIMESTAMP NOT NULL, + PRIMARY KEY (LOCK_KEY, REGION) +); + +CREATE TABLE sp_distribution_set_tag ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, - target BIGINT NOT NULL, - initiator VARCHAR(64), - remark VARCHAR(512), created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set_tag ON sp_distribution_set_tag (name, tenant); +CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant, id); +CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant, name); -CREATE TABLE sp_target_type ( +CREATE TABLE sp_distribution_set_type ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -25,11 +36,16 @@ CREATE TABLE sp_target_type ( description VARCHAR(512), name VARCHAR(128) NOT NULL, colour VARCHAR(16), - type_key VARCHAR(64) DEFAULT '_' NOT NULL, + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set_type_type_key ON sp_distribution_set_type (type_key, tenant); +CREATE UNIQUE INDEX uk_distribution_set_type_name ON sp_distribution_set_type (name, tenant); +CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant, id); +CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant, deleted); -CREATE TABLE sp_action_status ( +CREATE TABLE sp_software_module_type ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -37,14 +53,21 @@ CREATE TABLE sp_action_status ( last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - target_occurred_at BIGINT NOT NULL, - status INTEGER NOT NULL, - action BIGINT NOT NULL, - code INTEGER, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INTEGER NOT NULL, + min_artifacts INTEGER DEFAULT 0 NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_software_module_type_type_key ON sp_software_module_type (type_key, tenant); +CREATE UNIQUE INDEX uk_software_module_type_name ON sp_software_module_type (name, tenant); +CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant, id); +CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant, deleted); -CREATE TABLE sp_distribution_set_type ( +CREATE TABLE sp_target_tag ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -55,12 +78,13 @@ CREATE TABLE sp_distribution_set_type ( description VARCHAR(512), name VARCHAR(128) NOT NULL, colour VARCHAR(16), - deleted BOOLEAN, - type_key VARCHAR(64) NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_tag ON sp_target_tag (name, tenant); +CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant, id); +CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant, name); -CREATE TABLE sp_distribution_set_tag ( +CREATE TABLE sp_target_type ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -71,36 +95,14 @@ CREATE TABLE sp_distribution_set_tag ( description VARCHAR(512), name VARCHAR(128) NOT NULL, colour VARCHAR(16), + type_key VARCHAR(64) NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_type_key ON sp_target_type (type_key, tenant); +CREATE UNIQUE INDEX uk_target_name ON sp_target_type (name, tenant); +CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant, id); -CREATE TABLE sp_ds_tag ( - ds BIGINT NOT NULL, - tag BIGINT NOT NULL, - PRIMARY KEY (ds, tag) -); - -CREATE TABLE sp_ds_metadata ( - meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000), - ds BIGINT NOT NULL, - PRIMARY KEY (ds, meta_key) -); - -CREATE TABLE sp_ds_sm ( - ds_id BIGINT NOT NULL, - sm_id BIGINT NOT NULL, - PRIMARY KEY (ds_id, sm_id) -); - -CREATE TABLE sp_ds_type_element ( - mandatory BOOLEAN, - distribution_set_type BIGINT NOT NULL, - software_module_type BIGINT NOT NULL, - PRIMARY KEY (distribution_set_type, software_module_type) -); - -CREATE TABLE sp_action ( +CREATE TABLE sp_tenant_configuration ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -108,29 +110,11 @@ CREATE TABLE sp_action ( last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - active BOOLEAN, - forced_time BIGINT, - status INTEGER NOT NULL, - distribution_set BIGINT NOT NULL, - target BIGINT NOT NULL, - rollout BIGINT, - rollout_group BIGINT, - action_type INTEGER NOT NULL, - maintenance_cron_schedule VARCHAR(40), - maintenance_duration VARCHAR(40), - maintenance_time_zone VARCHAR(40), - external_ref VARCHAR(512), - weight INTEGER NOT NULL, - initiated_by VARCHAR(64) NOT NULL, - last_action_status_code INTEGER, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL, PRIMARY KEY (id) ); - -CREATE TABLE sp_target_type_ds_type ( - target_type BIGINT NOT NULL, - distribution_set_type BIGINT NOT NULL, - PRIMARY KEY (target_type, distribution_set_type) -); +CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant); CREATE TABLE sp_distribution_set ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -150,13 +134,40 @@ CREATE TABLE sp_distribution_set ( locked BOOLEAN DEFAULT TRUE NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set ON sp_distribution_set (tenant, name, version, ds_type); +CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant, id); +CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant, deleted); +ALTER TABLE sp_distribution_set + ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id) NOCHECK; -CREATE TABLE sp_action_status_messages ( - action_status BIGINT NOT NULL, - detail_message VARCHAR(512) NOT NULL +CREATE TABLE sp_tenant ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + default_ds_type BIGINT NOT NULL, + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_tenant ON sp_tenant (tenant); +CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant, id); +ALTER TABLE sp_tenant + ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id) NOCHECK; -CREATE TABLE sp_artifact ( +CREATE TABLE sp_ds_type_element ( + mandatory BOOLEAN, + distribution_set_type BIGINT NOT NULL, + software_module_type BIGINT NOT NULL, + PRIMARY KEY (distribution_set_type, software_module_type) +); +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE NOCHECK; + +CREATE TABLE sp_software_module ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -164,14 +175,51 @@ CREATE TABLE sp_artifact ( last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - md5_hash VARCHAR(32), - file_size BIGINT, - provided_file_name VARCHAR(256), - sha1_hash VARCHAR(40) NOT NULL, - software_module BIGINT NOT NULL, - sha256_hash CHAR(64), + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + version VARCHAR(64) NOT NULL, + deleted BOOLEAN, + vendor VARCHAR(256), + sm_type BIGINT NOT NULL, + encrypted BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_software_module ON sp_software_module (sm_type, name, version, tenant); +CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant, deleted, name, version); +CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant, deleted, sm_type); +CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant, id); +ALTER TABLE sp_software_module + ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id) NOCHECK; + +CREATE TABLE sp_target_type_ds_type ( + target_type BIGINT NOT NULL, + distribution_set_type BIGINT NOT NULL, + PRIMARY KEY (target_type, distribution_set_type) +); +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE NOCHECK; + +CREATE TABLE sp_ds_metadata ( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + ds BIGINT NOT NULL, + PRIMARY KEY (ds, meta_key) +); +ALTER TABLE sp_ds_metadata + ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; + +CREATE TABLE sp_ds_tag ( + ds BIGINT NOT NULL, + tag BIGINT NOT NULL, + PRIMARY KEY (ds, tag) +); +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE NOCHECK; CREATE TABLE sp_rollout ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -201,8 +249,12 @@ CREATE TABLE sp_rollout ( is_dynamic BOOLEAN, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_rollout ON sp_rollout (name, tenant); +CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant, status); +ALTER TABLE sp_rollout + ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; -CREATE TABLE sp_target_tag ( +CREATE TABLE sp_target ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -212,17 +264,34 @@ CREATE TABLE sp_target_tag ( tenant VARCHAR(40) NOT NULL, description VARCHAR(512), name VARCHAR(128) NOT NULL, - colour VARCHAR(16), + controller_id VARCHAR(256) NOT NULL, + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT, + install_date BIGINT, + address VARCHAR(512), + last_target_query BIGINT, + request_controller_attributes BOOLEAN NOT NULL, + installed_distribution_set BIGINT, + update_status INTEGER NOT NULL, + target_type BIGINT, + target_group VARCHAR(256), PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_controller_id ON sp_target (controller_id, tenant); +CREATE INDEX sp_idx_target_01 ON sp_target (tenant, name, assigned_distribution_set); +CREATE INDEX sp_idx_target_03 ON sp_target (tenant, controller_id, assigned_distribution_set); +CREATE INDEX sp_idx_target_04 ON sp_target (tenant, created_at); +CREATE INDEX sp_idx_target_prim ON sp_target (tenant, id); +CREATE INDEX sp_idx_target_05 ON sp_target (tenant, last_modified_at); +CREATE INDEX sp_idx_target_group ON sp_target (tenant, target_group); +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL NOCHECK; -CREATE TABLE sp_target_target_tag ( - target BIGINT NOT NULL, - tag BIGINT NOT NULL, - PRIMARY KEY (target, tag) -); - -CREATE TABLE sp_tenant ( +CREATE TABLE sp_target_filter_query ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -230,11 +299,21 @@ CREATE TABLE sp_tenant ( last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - default_ds_type BIGINT NOT NULL, + name VARCHAR(128) NOT NULL, + query VARCHAR(1024) NOT NULL, + auto_assign_distribution_set BIGINT, + auto_assign_action_type INTEGER, + auto_assign_weight INTEGER NOT NULL, + auto_assign_initiated_by VARCHAR(64), + confirmation_required BOOLEAN, + access_control_context VARCHAR(4096), PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant); +ALTER TABLE sp_target_filter_query + ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL NOCHECK; -CREATE TABLE sp_tenant_configuration ( +CREATE TABLE sp_artifact ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -242,36 +321,29 @@ CREATE TABLE sp_tenant_configuration ( last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - conf_key VARCHAR(128) NOT NULL, - conf_value VARCHAR(512) NOT NULL, + md5_hash VARCHAR(32), + file_size BIGINT, + provided_file_name VARCHAR(256), + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64), PRIMARY KEY (id) ); +CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant, id); +CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant, software_module); +CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant, sha1_hash); +ALTER TABLE sp_artifact + ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; -CREATE TABLE sp_target_metadata ( - meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000), - target BIGINT NOT NULL, - PRIMARY KEY (target, meta_key) -); - -CREATE TABLE sp_target_filter_query ( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - name VARCHAR(128) NOT NULL, - query VARCHAR(1024) NOT NULL, - auto_assign_distribution_set BIGINT, - auto_assign_action_type INTEGER, - auto_assign_weight INTEGER NOT NULL, - auto_assign_initiated_by VARCHAR(64), - confirmation_required BOOLEAN, - access_control_context VARCHAR(4096), - PRIMARY KEY (id) +CREATE TABLE sp_ds_sm ( + ds_id BIGINT NOT NULL, + sm_id BIGINT NOT NULL, + PRIMARY KEY (ds_id, sm_id) ); +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; CREATE TABLE sp_sm_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -280,6 +352,8 @@ CREATE TABLE sp_sm_metadata ( target_visible BOOLEAN, PRIMARY KEY (meta_key, sm) ); +ALTER TABLE sp_sm_metadata + ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; CREATE TABLE sp_rollout_group ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -309,32 +383,9 @@ CREATE TABLE sp_rollout_group ( is_dynamic BOOLEAN DEFAULT FALSE NOT NULL, PRIMARY KEY (id) ); - -CREATE TABLE sp_software_module_type ( - id BIGINT GENERATED BY DEFAULT AS IDENTITY, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - colour VARCHAR(16), - deleted BOOLEAN, - type_key VARCHAR(64) NOT NULL, - max_ds_assignments INTEGER NOT NULL, - min_artifacts INTEGER DEFAULT 0 NOT NULL, - PRIMARY KEY (id) -); - -CREATE TABLE sp_lock ( - lock_key CHAR(36) NOT NULL, - region VARCHAR(100) NOT NULL, - client_id CHAR(36), - created_date TIMESTAMP NOT NULL, - PRIMARY KEY (lock_key, region) -); +CREATE UNIQUE INDEX uk_rollout_group ON sp_rollout_group (name, rollout, tenant); +ALTER TABLE sp_rollout_group + ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE NOCHECK; CREATE TABLE sp_target_attributes ( target BIGINT NOT NULL, @@ -342,32 +393,45 @@ CREATE TABLE sp_target_attributes ( attribute_key VARCHAR(128) NOT NULL, PRIMARY KEY (target, attribute_key) ); +ALTER TABLE sp_target_attributes + ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; -CREATE TABLE sp_target ( +CREATE TABLE sp_target_conf_status ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, + target BIGINT NOT NULL, + initiator VARCHAR(64), + remark VARCHAR(512), created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - controller_id VARCHAR(256) NOT NULL, - sec_token VARCHAR(128) NOT NULL, - assigned_distribution_set BIGINT, - install_date BIGINT, - address VARCHAR(512), - last_target_query BIGINT, - request_controller_attributes BOOLEAN NOT NULL, - installed_distribution_set BIGINT, - update_status INTEGER NOT NULL, - target_type BIGINT, - target_group VARCHAR(256), PRIMARY KEY (id) ); +ALTER TABLE sp_target_conf_status + ADD CONSTRAINT fk_target_conf_status_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; -CREATE TABLE sp_software_module ( +CREATE TABLE sp_target_metadata ( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + target BIGINT NOT NULL, + PRIMARY KEY (target, meta_key) +); +ALTER TABLE sp_target_metadata + ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; + +CREATE TABLE sp_target_target_tag ( + target BIGINT NOT NULL, + tag BIGINT NOT NULL, + PRIMARY KEY (target, tag) +); +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE NOCHECK; + +CREATE TABLE sp_action ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), @@ -375,154 +439,70 @@ CREATE TABLE sp_software_module ( last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128) NOT NULL, - version VARCHAR(64) NOT NULL, - deleted BOOLEAN, - vendor VARCHAR(256), - sm_type BIGINT NOT NULL, - encrypted BOOLEAN, - locked BOOLEAN DEFAULT TRUE NOT NULL, + active BOOLEAN, + forced_time BIGINT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT, + rollout_group BIGINT, + action_type INTEGER NOT NULL, + maintenance_cron_schedule VARCHAR(40), + maintenance_duration VARCHAR(40), + maintenance_time_zone VARCHAR(40), + external_ref VARCHAR(512), + weight INTEGER NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INTEGER, PRIMARY KEY (id) ); +CREATE INDEX sp_idx_action_prim ON sp_action (tenant, id); +CREATE INDEX sp_idx_action_01 ON sp_action (tenant, distribution_set); +CREATE INDEX sp_idx_action_02 ON sp_action (tenant, target, active); +CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref); +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) NOCHECK; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) NOCHECK; CREATE TABLE sp_rollout_target_group ( target BIGINT NOT NULL, rollout_group BIGINT NOT NULL, PRIMARY KEY (rollout_group, target) ); - --- Indexes -CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant NULLS FIRST, action NULLS FIRST, status NULLS FIRST); -CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant NULLS FIRST, code NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant NULLS FIRST, deleted NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant NULLS FIRST, name NULLS FIRST); -CREATE INDEX sp_idx_action_01 ON sp_action (tenant NULLS FIRST, distribution_set NULLS FIRST); -CREATE INDEX sp_idx_action_02 ON sp_action (tenant NULLS FIRST, target NULLS FIRST, active NULLS FIRST); -CREATE INDEX sp_idx_action_prim ON sp_action (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant NULLS FIRST, deleted NULLS FIRST); -CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status NULLS FIRST); -CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant NULLS FIRST, software_module NULLS FIRST); -CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant NULLS FIRST, sha1_hash NULLS FIRST); -CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant NULLS FIRST, status NULLS FIRST); -CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant NULLS FIRST, name NULLS FIRST); -CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant NULLS FIRST, deleted NULLS FIRST); -CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_target_01 ON sp_target (tenant NULLS FIRST, name NULLS FIRST, assigned_distribution_set NULLS FIRST); -CREATE INDEX sp_idx_target_03 ON sp_target (tenant NULLS FIRST, controller_id NULLS FIRST, assigned_distribution_set NULLS FIRST); -CREATE INDEX sp_idx_target_04 ON sp_target (tenant NULLS FIRST, created_at NULLS FIRST); -CREATE INDEX sp_idx_target_prim ON sp_target (tenant NULLS FIRST, id NULLS FIRST); -CREATE INDEX sp_idx_target_05 ON sp_target (tenant NULLS FIRST, last_modified_at NULLS FIRST); -CREATE INDEX sp_idx_target_group ON sp_target (tenant NULLS FIRST, target_group NULLS FIRST); -CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant NULLS FIRST, deleted NULLS FIRST, name NULLS FIRST, version NULLS FIRST); -CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant NULLS FIRST, deleted NULLS FIRST, sm_type NULLS FIRST); -CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant NULLS FIRST, id NULLS FIRST); - --- Constraints -ALTER TABLE sp_distribution_set_tag - ADD CONSTRAINT uk_distribution_set_tag UNIQUE NULLS DISTINCT (NAME, tenant); -ALTER TABLE sp_software_module - ADD CONSTRAINT uk_software_module UNIQUE NULLS DISTINCT (sm_type, NAME, version, tenant); -ALTER TABLE sp_target_type - ADD CONSTRAINT uk_target_type_key UNIQUE NULLS DISTINCT (type_key, tenant); -ALTER TABLE sp_software_module_type - ADD CONSTRAINT uk_software_module_type_type_key UNIQUE NULLS DISTINCT (type_key, tenant); -ALTER TABLE sp_target_type - ADD CONSTRAINT uk_target_name UNIQUE NULLS DISTINCT (NAME, tenant); -ALTER TABLE sp_tenant - ADD CONSTRAINT uk_tenant UNIQUE NULLS DISTINCT (tenant); -ALTER TABLE sp_target_filter_query - ADD CONSTRAINT uk_target_filter_query UNIQUE NULLS DISTINCT (NAME, tenant); -ALTER TABLE sp_distribution_set - ADD CONSTRAINT uk_distribution_set UNIQUE NULLS DISTINCT (tenant, NAME, version, ds_type); -ALTER TABLE sp_rollout - ADD CONSTRAINT uk_rollout UNIQUE NULLS DISTINCT (NAME, tenant); -ALTER TABLE sp_tenant_configuration - ADD CONSTRAINT uk_tenant_configuration UNIQUE NULLS DISTINCT (conf_key, tenant); -ALTER TABLE sp_distribution_set_type - ADD CONSTRAINT uk_distribution_set_type_name UNIQUE NULLS DISTINCT (NAME, tenant); -ALTER TABLE sp_rollout_group - ADD CONSTRAINT uk_rollout_group UNIQUE NULLS DISTINCT (NAME, rollout, tenant); -ALTER TABLE sp_distribution_set_type - ADD CONSTRAINT uk_distribution_set_type_type_key UNIQUE NULLS DISTINCT (type_key, tenant); -ALTER TABLE sp_software_module_type - ADD CONSTRAINT uk_software_module_type_name UNIQUE NULLS DISTINCT (NAME, tenant); -ALTER TABLE sp_target - ADD CONSTRAINT uk_target_controller_id UNIQUE NULLS DISTINCT (controller_id, tenant); -ALTER TABLE sp_target_tag - ADD CONSTRAINT uk_target_tag UNIQUE NULLS DISTINCT (NAME, tenant); -ALTER TABLE sp_action - ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; -ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_action_status - ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) NOCHECK; -ALTER TABLE sp_rollout_group - ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE NOCHECK; ALTER TABLE sp_rollout_target_group ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; ALTER TABLE sp_rollout_target_group ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_action - ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_target_filter_query - ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL NOCHECK; -ALTER TABLE sp_artifact - ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE NOCHECK; + +CREATE TABLE sp_action_status ( + id BIGINT GENERATED BY DEFAULT AS IDENTITY, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + target_occurred_at BIGINT NOT NULL, + status INTEGER NOT NULL, + action BIGINT NOT NULL, + code INTEGER, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant, id); +CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant, action, status); +CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant, code); +ALTER TABLE sp_action_status + ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE NOCHECK; + +CREATE TABLE sp_action_status_messages ( + action_status BIGINT NOT NULL, + detail_message VARCHAR(512) NOT NULL +); +CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status); ALTER TABLE sp_action_status_messages - ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_distribution_set - ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id) NOCHECK; -ALTER TABLE sp_rollout - ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; -ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_target_conf_status - ADD CONSTRAINT fk_target_conf_status_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_software_module - ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id) NOCHECK; -ALTER TABLE sp_target - ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; -ALTER TABLE sp_target_metadata - ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_tenant - ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id) NOCHECK; -ALTER TABLE sp_ds_metadata - ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_sm_metadata - ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) NOCHECK; -ALTER TABLE sp_target - ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; -ALTER TABLE sp_target_attributes - ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; -ALTER TABLE sp_target - ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL NOCHECK; \ No newline at end of file + ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE NOCHECK; \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql index bc584d352b..6e73c1f42c 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql @@ -1,533 +1,507 @@ -- hawkbit 1.0.0 MySQL database migration script baseline -- -CREATE TABLE SP_LOCK ( +CREATE TABLE SP_LOCK ( -- spring table -- LOCK_KEY CHAR(36) NOT NULL, REGION VARCHAR(100) NOT NULL, - CLIENT_ID CHAR(36) DEFAULT NULL, + CLIENT_ID CHAR(36), CREATED_DATE DATETIME(6) NOT NULL, PRIMARY KEY (LOCK_KEY, REGION) ); -CREATE TABLE sp_action ( +CREATE TABLE sp_distribution_set_tag ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - active BIT(1) DEFAULT NULL, - forced_time BIGINT DEFAULT NULL, - status INT NOT NULL, - distribution_set BIGINT NOT NULL, - target BIGINT NOT NULL, - rollout BIGINT DEFAULT NULL, - rollout_group BIGINT DEFAULT NULL, - action_type INT NOT NULL, - maintenance_cron_schedule VARCHAR(40) DEFAULT NULL, - maintenance_duration VARCHAR(40) DEFAULT NULL, - maintenance_time_zone VARCHAR(40) DEFAULT NULL, - external_ref VARCHAR(512) DEFAULT NULL, - weight INT NOT NULL, - initiated_by VARCHAR(64) NOT NULL, - last_action_status_code INT DEFAULT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set_tag ON sp_distribution_set_tag (name, tenant); +CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant, id); +CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant, name); -CREATE TABLE sp_action_status ( +CREATE TABLE sp_distribution_set_type ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - target_occurred_at BIGINT NOT NULL, - status INT NOT NULL, - action BIGINT NOT NULL, - code INT DEFAULT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set_type_type_key ON sp_distribution_set_type (type_key, tenant); +CREATE UNIQUE INDEX uk_distribution_set_type_name ON sp_distribution_set_type (name, tenant); +CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant, id); +CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant, deleted); -CREATE TABLE sp_action_status_messages ( - action_status BIGINT NOT NULL, - detail_message VARCHAR(512) NOT NULL +CREATE TABLE sp_software_module_type ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INTEGER NOT NULL, + min_artifacts INTEGER DEFAULT 0 NOT NULL, + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_software_module_type_type_key ON sp_software_module_type (type_key, tenant); +CREATE UNIQUE INDEX uk_software_module_type_name ON sp_software_module_type (name, tenant); +CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant, id); +CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant, deleted); -CREATE TABLE sp_artifact ( +CREATE TABLE sp_target_tag ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - md5_hash VARCHAR(32) DEFAULT NULL, - file_size BIGINT DEFAULT NULL, - provided_file_name VARCHAR(256) DEFAULT NULL, - sha1_hash VARCHAR(40) NOT NULL, - software_module BIGINT NOT NULL, - sha256_hash CHAR(64) DEFAULT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_tag ON sp_target_tag (name, tenant); +CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant, id); +CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant, name); + +CREATE TABLE sp_target_type ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + type_key VARCHAR(64) NOT NULL, + PRIMARY KEY (id) +); +CREATE UNIQUE INDEX uk_target_type_key ON sp_target_type (type_key, tenant); +CREATE UNIQUE INDEX uk_target_name ON sp_target_type (name, tenant); +CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant, id); + +CREATE TABLE sp_tenant_configuration ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL, + PRIMARY KEY (id) +); +CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant); CREATE TABLE sp_distribution_set ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, version VARCHAR(64) NOT NULL, - deleted BIT(1) DEFAULT NULL, - required_migration_step BIT(1) DEFAULT NULL, + deleted BOOLEAN, + required_migration_step BOOLEAN, ds_type BIGINT NOT NULL, - valid TINYINT(1) DEFAULT NULL, - locked TINYINT(1) NOT NULL DEFAULT '1', + valid BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, PRIMARY KEY (id) ); +CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant, id); +CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant, deleted); +ALTER TABLE sp_distribution_set + ADD CONSTRAINT fk_ds_dstype_ds FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id); -CREATE TABLE sp_distribution_set_tag ( +CREATE TABLE sp_tenant ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, + default_ds_type BIGINT NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_tenant ON sp_tenant (tenant); +CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant, id); +ALTER TABLE sp_tenant + ADD CONSTRAINT fk_tenant_md_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id); -CREATE TABLE sp_distribution_set_type ( +CREATE TABLE sp_ds_type_element ( + mandatory BOOLEAN, + distribution_set_type BIGINT NOT NULL, + software_module_type BIGINT NOT NULL, + PRIMARY KEY (distribution_set_type, software_module_type) +); +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_element FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_smtype FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE; + +CREATE TABLE sp_software_module ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, - deleted BIT(1) DEFAULT NULL, - type_key VARCHAR(64) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + version VARCHAR(64) NOT NULL, + deleted BOOLEAN, + vendor VARCHAR(256), + sm_type BIGINT NOT NULL, + encrypted BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_software_module ON sp_software_module (sm_type, name, version, tenant); +CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant, deleted, name, version); +CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant, deleted, sm_type); +CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant, id); +ALTER TABLE sp_software_module + ADD CONSTRAINT fk_module_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id); + +CREATE TABLE sp_target_type_ds_type ( + target_type BIGINT NOT NULL, + distribution_set_type BIGINT NOT NULL, + PRIMARY KEY (target_type, distribution_set_type) +); +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_relation_ds_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE; CREATE TABLE sp_ds_metadata ( meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000) DEFAULT NULL, + meta_value VARCHAR(4000), ds BIGINT NOT NULL, PRIMARY KEY (ds, meta_key) ); - -CREATE TABLE sp_ds_sm ( - ds_id BIGINT NOT NULL, - sm_id BIGINT NOT NULL, - PRIMARY KEY (ds_id, sm_id) -); +ALTER TABLE sp_ds_metadata + ADD CONSTRAINT fk_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; CREATE TABLE sp_ds_tag ( ds BIGINT NOT NULL, tag BIGINT NOT NULL, PRIMARY KEY (ds, tag) ); - -CREATE TABLE sp_ds_type_element ( - mandatory BIT(1) DEFAULT NULL, - distribution_set_type BIGINT NOT NULL, - software_module_type BIGINT NOT NULL, - PRIMARY KEY (distribution_set_type, software_module_type) -); +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_dstag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_dstag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; CREATE TABLE sp_rollout ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - last_check BIGINT DEFAULT NULL, - group_theshold FLOAT DEFAULT NULL, - status INT NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + last_check BIGINT, + group_theshold FLOAT, + status INTEGER NOT NULL, distribution_set BIGINT NOT NULL, - target_filter VARCHAR(1024) DEFAULT NULL, - forced_time BIGINT DEFAULT NULL, - total_targets BIGINT DEFAULT NULL, - rollout_groups_created BIGINT DEFAULT NULL, - start_at BIGINT DEFAULT NULL, - deleted TINYINT(1) DEFAULT NULL, - action_type INT NOT NULL, - approval_decided_by VARCHAR(64) DEFAULT NULL, - approval_remark VARCHAR(255) DEFAULT NULL, - weight INT NOT NULL, - access_control_context VARCHAR(4096) DEFAULT NULL, - is_dynamic TINYINT(1) DEFAULT NULL, + target_filter VARCHAR(1024), + forced_time BIGINT, + total_targets BIGINT, + rollout_groups_created BIGINT, + start_at BIGINT, + deleted BOOLEAN, + action_type INTEGER NOT NULL, + approval_decided_by VARCHAR(64), + approval_remark VARCHAR(255), + weight INTEGER NOT NULL, + access_control_context VARCHAR(4096), + is_dynamic BOOLEAN, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_rollout ON sp_rollout (name, tenant); +CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant, status); +ALTER TABLE sp_rollout + ADD CONSTRAINT fk_rollout_ds FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); -CREATE TABLE sp_rollout_group ( +CREATE TABLE sp_target ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - error_condition INT DEFAULT NULL, - error_condition_exp VARCHAR(512) DEFAULT NULL, - error_action INT DEFAULT NULL, - error_action_exp VARCHAR(512) DEFAULT NULL, - success_condition INT NOT NULL, - success_condition_exp VARCHAR(512) NOT NULL, - success_action INT NOT NULL, - success_action_exp VARCHAR(512) DEFAULT NULL, - status INT NOT NULL, - parent BIGINT DEFAULT NULL, - rollout BIGINT NOT NULL, - total_targets BIGINT DEFAULT NULL, - target_percentage FLOAT DEFAULT NULL, - target_filter VARCHAR(1024) DEFAULT NULL, - confirmation_required TINYINT(1) DEFAULT NULL, - is_dynamic TINYINT(1) NOT NULL DEFAULT '0', + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + controller_id VARCHAR(256) NOT NULL, + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT, + install_date BIGINT, + address VARCHAR(512), + last_target_query BIGINT, + request_controller_attributes BOOLEAN NOT NULL, + installed_distribution_set BIGINT, + update_status INTEGER NOT NULL, + target_type BIGINT, + target_group VARCHAR(256), PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_controller_id ON sp_target (controller_id, tenant); +CREATE INDEX sp_idx_target_01 ON sp_target (tenant, name, assigned_distribution_set); +CREATE INDEX sp_idx_target_03 ON sp_target (tenant, controller_id, assigned_distribution_set); +CREATE INDEX sp_idx_target_04 ON sp_target (tenant, created_at); +CREATE INDEX sp_idx_target_prim ON sp_target (tenant, id); +CREATE INDEX sp_idx_target_05 ON sp_target (tenant, last_modified_at); +CREATE INDEX sp_idx_target_group ON sp_target (tenant, target_group); +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id); +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id); +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL; -CREATE TABLE sp_rollout_target_group ( - target BIGINT NOT NULL, - rollout_group BIGINT NOT NULL, - PRIMARY KEY (rollout_group, target) -); - -CREATE TABLE sp_sm_metadata ( - meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000) DEFAULT NULL, - sm BIGINT NOT NULL, - target_visible BIT(1) DEFAULT NULL, - PRIMARY KEY (meta_key, sm) -); - -CREATE TABLE sp_software_module ( +CREATE TABLE sp_target_filter_query ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - version VARCHAR(64) NOT NULL, - deleted BIT(1) DEFAULT NULL, - vendor VARCHAR(256) DEFAULT NULL, - sm_type BIGINT NOT NULL, - encrypted TINYINT(1) DEFAULT NULL, - locked TINYINT(1) NOT NULL DEFAULT '1', + name VARCHAR(128) NOT NULL, + query VARCHAR(1024) NOT NULL, + auto_assign_distribution_set BIGINT, + auto_assign_action_type INTEGER, + auto_assign_weight INTEGER NOT NULL, + auto_assign_initiated_by VARCHAR(64), + confirmation_required BOOLEAN, + access_control_context VARCHAR(4096), PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant); +ALTER TABLE sp_target_filter_query + ADD CONSTRAINT fk_filter_auto_assign_ds FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL; -CREATE TABLE sp_software_module_type ( +CREATE TABLE sp_artifact ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, - deleted BIT(1) DEFAULT NULL, - type_key VARCHAR(64) NOT NULL, - max_ds_assignments INT NOT NULL, - min_artifacts INT NOT NULL DEFAULT '0', + md5_hash VARCHAR(32), + file_size BIGINT, + provided_file_name VARCHAR(256), + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64), PRIMARY KEY (id) ); +CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant, id); +CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant, software_module); +CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant, sha1_hash); +ALTER TABLE sp_artifact + ADD CONSTRAINT fk_assigned_sm FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE; + +CREATE TABLE sp_ds_sm ( + ds_id BIGINT NOT NULL, + sm_id BIGINT NOT NULL, + PRIMARY KEY (ds_id, sm_id) +); +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_module_ds FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_module_module FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE; -CREATE TABLE sp_target ( +CREATE TABLE sp_sm_metadata ( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + sm BIGINT NOT NULL, + target_visible BOOLEAN, + PRIMARY KEY (meta_key, sm) +); +ALTER TABLE sp_sm_metadata + ADD CONSTRAINT fk_metadata_sw FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE; + +CREATE TABLE sp_rollout_group ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - controller_id VARCHAR(256) DEFAULT NULL, - sec_token VARCHAR(128) NOT NULL, - assigned_distribution_set BIGINT DEFAULT NULL, - install_date BIGINT DEFAULT NULL, - address VARCHAR(512) DEFAULT NULL, - last_target_query BIGINT DEFAULT NULL, - request_controller_attributes BIT(1) NOT NULL, - installed_distribution_set BIGINT DEFAULT NULL, - update_status INT NOT NULL, - target_type BIGINT DEFAULT NULL, - target_group VARCHAR(256) DEFAULT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + error_condition INTEGER, + error_condition_exp VARCHAR(512), + error_action INTEGER, + error_action_exp VARCHAR(512), + success_condition INTEGER NOT NULL, + success_condition_exp VARCHAR(512) NOT NULL, + success_action INTEGER NOT NULL, + success_action_exp VARCHAR(512), + status INTEGER NOT NULL, + parent BIGINT, + rollout BIGINT NOT NULL, + total_targets BIGINT, + target_percentage FLOAT, + target_filter VARCHAR(1024), + confirmation_required BOOLEAN, + is_dynamic BOOLEAN DEFAULT FALSE NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_rollout_group ON sp_rollout_group (name, rollout, tenant); +ALTER TABLE sp_rollout_group + ADD CONSTRAINT fk_rolloutgroup_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE; CREATE TABLE sp_target_attributes ( target BIGINT NOT NULL, - attribute_value VARCHAR(128) DEFAULT NULL, + attribute_value VARCHAR(128), attribute_key VARCHAR(128) NOT NULL, PRIMARY KEY (target, attribute_key) ); +ALTER TABLE sp_target_attributes + ADD CONSTRAINT fk_targ_attrib_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_conf_status ( id BIGINT NOT NULL AUTO_INCREMENT, target BIGINT NOT NULL, - initiator VARCHAR(64) DEFAULT NULL, - remark VARCHAR(512) DEFAULT NULL, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - PRIMARY KEY (id) -); - -CREATE TABLE sp_target_filter_query ( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + initiator VARCHAR(64), + remark VARCHAR(512), + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - name VARCHAR(128) DEFAULT NULL, - query VARCHAR(1024) NOT NULL, - auto_assign_distribution_set BIGINT DEFAULT NULL, - auto_assign_action_type INT DEFAULT NULL, - auto_assign_weight INT NOT NULL, - auto_assign_initiated_by VARCHAR(64) DEFAULT NULL, - confirmation_required TINYINT(1) DEFAULT NULL, - access_control_context VARCHAR(4096) DEFAULT NULL, PRIMARY KEY (id) ); +ALTER TABLE sp_target_conf_status + ADD CONSTRAINT fk_target_auto_conf FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_metadata ( meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000) DEFAULT NULL, + meta_value VARCHAR(4000), target BIGINT NOT NULL, PRIMARY KEY (target, meta_key) ); - -CREATE TABLE sp_target_tag ( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, - PRIMARY KEY (id) -); +ALTER TABLE sp_target_metadata + ADD CONSTRAINT fk_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_target_tag ( target BIGINT NOT NULL, tag BIGINT NOT NULL, PRIMARY KEY (target, tag) ); +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_targ_targtag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE; +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_targ_targtag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; -CREATE TABLE sp_target_type ( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512) DEFAULT NULL, - name VARCHAR(128) DEFAULT NULL, - colour VARCHAR(16) DEFAULT NULL, - type_key VARCHAR(64) NOT NULL DEFAULT (_utf8mb4'_'), - PRIMARY KEY (id) -); - -CREATE TABLE sp_target_type_ds_type ( - target_type BIGINT NOT NULL, - distribution_set_type BIGINT NOT NULL, - PRIMARY KEY (target_type, distribution_set_type) -); - -CREATE TABLE sp_tenant ( - id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, - tenant VARCHAR(40) NOT NULL, - default_ds_type BIGINT NOT NULL, - PRIMARY KEY (id) -); - -CREATE TABLE sp_tenant_configuration ( +CREATE TABLE sp_action ( id BIGINT NOT NULL AUTO_INCREMENT, - created_at BIGINT DEFAULT NULL, - created_by VARCHAR(64) DEFAULT NULL, - last_modified_at BIGINT DEFAULT NULL, - last_modified_by VARCHAR(64) DEFAULT NULL, - optlock_revision BIGINT DEFAULT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - conf_key VARCHAR(128) NOT NULL, - conf_value VARCHAR(512) NOT NULL, + active BOOLEAN, + forced_time BIGINT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT, + rollout_group BIGINT, + action_type INTEGER NOT NULL, + maintenance_cron_schedule VARCHAR(40), + maintenance_duration VARCHAR(40), + maintenance_time_zone VARCHAR(40), + external_ref VARCHAR(512), + weight INTEGER NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INTEGER, PRIMARY KEY (id) ); - +CREATE INDEX sp_idx_action_prim ON sp_action (tenant, id); CREATE INDEX sp_idx_action_01 ON sp_action (tenant, distribution_set); CREATE INDEX sp_idx_action_02 ON sp_action (tenant, target, active); -CREATE INDEX sp_idx_action_prim ON sp_action (tenant, id); -CREATE INDEX fk_action_distribution_set ON sp_action (distribution_set); -CREATE INDEX fk_action_target ON sp_action (target); -CREATE INDEX fk_action_rollout ON sp_action (rollout); -CREATE INDEX fk_action_rollout_group ON sp_action (rollout_group); CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref); -CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant, action, status); -CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant, id); -CREATE INDEX fk_action_status_action ON sp_action_status (action); -CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant, code); -CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status); -CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant, software_module); -CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant, id); -CREATE INDEX fk_artifact_software_module ON sp_artifact (software_module); -CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant, sha1_hash); -CREATE UNIQUE INDEX uk_distribution_set ON sp_distribution_set (tenant, name, version, ds_type); -CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant, id); -CREATE INDEX fk_distribution_set_ds_type ON sp_distribution_set (ds_type); -CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant, deleted); -CREATE UNIQUE INDEX uk_distribution_set_tag ON sp_distribution_set_tag (name, tenant); -CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant, id); -CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant, name); -CREATE UNIQUE INDEX uk_distribution_set_type_type_key ON sp_distribution_set_type (type_key, tenant); -CREATE UNIQUE INDEX uk_distribution_set_type_name ON sp_distribution_set_type (name, tenant); -CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant, deleted); -CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant, id); -CREATE INDEX fk_ds_sm_sm_id ON sp_ds_sm (sm_id); -CREATE INDEX fk_ds_tag_tag ON sp_ds_tag (tag); -CREATE INDEX fk_ds_type_element_software_module_type ON sp_ds_type_element (software_module_type); -CREATE UNIQUE INDEX uk_rollout ON sp_rollout (name, tenant); -CREATE INDEX fk_rollout_distribution_set ON sp_rollout (distribution_set); -CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant, status); -CREATE UNIQUE INDEX uk_rollout_group ON sp_rollout_group (name, rollout, tenant); -CREATE INDEX fk_rollout_group_rollout ON sp_rollout_group (rollout); -CREATE INDEX sp_idx_rollout_group_parent ON sp_rollout_group (parent); -CREATE INDEX fk_rollout_target_group_target ON sp_rollout_target_group (target); -CREATE INDEX fk_sm_metadata_sm ON sp_sm_metadata (sm); -CREATE UNIQUE INDEX uk_software_module ON sp_software_module (sm_type, name, version, tenant); -CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant, deleted, name, version); -CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant, deleted, sm_type); -CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant, id); -CREATE UNIQUE INDEX uk_software_module_type_type_key ON sp_software_module_type (type_key, tenant); -CREATE UNIQUE INDEX uk_software_module_type_name ON sp_software_module_type (name, tenant); -CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant, deleted); -CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant, id); -CREATE UNIQUE INDEX uk_target_controller_id ON sp_target (controller_id, tenant); -CREATE INDEX sp_idx_target_01 ON sp_target (tenant, name, assigned_distribution_set); -CREATE INDEX sp_idx_target_03 ON sp_target (tenant, controller_id, assigned_distribution_set); -CREATE INDEX sp_idx_target_04 ON sp_target (tenant, created_at); -CREATE INDEX sp_idx_target_prim ON sp_target (tenant, id); -CREATE INDEX fk_target_assign_ds ON sp_target (assigned_distribution_set); -CREATE INDEX fk_target_inst_ds ON sp_target (installed_distribution_set); -CREATE INDEX sp_idx_target_05 ON sp_target (tenant, last_modified_at); -CREATE INDEX fk_target_relation_target_type ON sp_target (target_type); -CREATE INDEX sp_idx_target_group ON sp_target (tenant, target_group); -CREATE INDEX fk_target_conf_status_target ON sp_target_conf_status (target); -CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant); -CREATE INDEX fk_target_filter_query_auto_assign_distribution_set ON sp_target_filter_query (auto_assign_distribution_set); -CREATE UNIQUE INDEX uk_target_tag ON sp_target_tag (name, tenant); -CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant, id); -CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant, name); -CREATE INDEX fk_target_target_tag_tag ON sp_target_target_tag (tag); -CREATE UNIQUE INDEX uk_target_type_key ON sp_target_type (type_key, tenant); -CREATE UNIQUE INDEX uk_target_name ON sp_target_type (name, tenant); -CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant, id); -CREATE INDEX fk_target_type_ds_type_distribution_set_type ON sp_target_type_ds_type (distribution_set_type); -CREATE UNIQUE INDEX uk_tenant ON sp_tenant (tenant); -CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant, id); -CREATE INDEX fk_tenant_default_ds_type ON sp_tenant (default_ds_type); -CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant); - ALTER TABLE sp_action ADD CONSTRAINT fk_action_ds FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); -ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id); ALTER TABLE sp_action ADD CONSTRAINT fk_action_rolloutgroup FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id); ALTER TABLE sp_action ADD CONSTRAINT fk_targ_act_hist_targ FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; -ALTER TABLE sp_action_status - ADD CONSTRAINT fk_act_stat_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE; -ALTER TABLE sp_action_status_messages - ADD CONSTRAINT fk_stat_msg_act_stat FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE; -ALTER TABLE sp_artifact - ADD CONSTRAINT fk_assigned_sm FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE; -ALTER TABLE sp_distribution_set - ADD CONSTRAINT fk_ds_dstype_ds FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id); -ALTER TABLE sp_ds_metadata - ADD CONSTRAINT fk_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; -ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_module_ds FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; -ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_module_module FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE; -ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_dstag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; -ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_dstag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; -ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_element FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; -ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_smtype FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE; -ALTER TABLE sp_rollout - ADD CONSTRAINT fk_rollout_ds FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); -ALTER TABLE sp_rollout_group - ADD CONSTRAINT fk_rolloutgroup_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id); + +CREATE TABLE sp_rollout_target_group ( + target BIGINT NOT NULL, + rollout_group BIGINT NOT NULL, + PRIMARY KEY (rollout_group, target) +); ALTER TABLE sp_rollout_target_group ADD CONSTRAINT fk_rollouttargetgroup_rolloutgroup FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE; ALTER TABLE sp_rollout_target_group ADD CONSTRAINT fk_rollouttargetgroup_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; -ALTER TABLE sp_sm_metadata - ADD CONSTRAINT fk_metadata_sw FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE; -ALTER TABLE sp_software_module - ADD CONSTRAINT fk_module_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id); -ALTER TABLE sp_target - ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id); -ALTER TABLE sp_target - ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id); -ALTER TABLE sp_target - ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL; -ALTER TABLE sp_target_attributes - ADD CONSTRAINT fk_targ_attrib_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; -ALTER TABLE sp_target_conf_status - ADD CONSTRAINT fk_target_auto_conf FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; -ALTER TABLE sp_target_filter_query - ADD CONSTRAINT fk_filter_auto_assign_ds FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL; -ALTER TABLE sp_target_metadata - ADD CONSTRAINT fk_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; -ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_targ_targtag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE; -ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_targ_targtag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; -ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_relation_ds_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; -ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE; -ALTER TABLE sp_tenant - ADD CONSTRAINT fk_tenant_md_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id); \ No newline at end of file + +CREATE TABLE sp_action_status ( + id BIGINT NOT NULL AUTO_INCREMENT, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + target_occurred_at BIGINT NOT NULL, + status INTEGER NOT NULL, + action BIGINT NOT NULL, + code INTEGER, + PRIMARY KEY (id) +); +CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant, id); +CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant, action, status); +CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant, code); +ALTER TABLE sp_action_status + ADD CONSTRAINT fk_act_stat_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE; + +CREATE TABLE sp_action_status_messages ( + action_status BIGINT NOT NULL, + detail_message VARCHAR(512) NOT NULL +); +CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status); +ALTER TABLE sp_action_status_messages + ADD CONSTRAINT fk_stat_msg_act_stat FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE; \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql index 03b8cb78d7..89f8a8ace7 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql @@ -1,81 +1,190 @@ -- hawkbit 1.0.0 PostgreSQL database migration script baseline -- +CREATE TABLE SP_LOCK ( -- spring table -- + LOCK_KEY CHAR(36) NOT NULL, + REGION VARCHAR(100) NOT NULL, + CLIENT_ID CHAR(36), + CREATED_DATE TIMESTAMP NOT NULL, + PRIMARY KEY (LOCK_KEY, REGION) +); + CREATE SEQUENCE sp_action_seq START WITH 1 INCREMENT BY 1 NO CYCLE; -CREATE TABLE sp_action ( - id BIGINT DEFAULT nextval('sp_action_seq') NOT NULL, +CREATE SEQUENCE sp_action_status_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_artifact_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_distribution_set_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_distributionset_tag_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_distribution_set_type_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_rollout_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_rolloutgroup_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_base_software_module_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_software_module_type_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_target_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_target_conf_status_id_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_target_filter_query_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_target_tag_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_target_type_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_tenant_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; +CREATE SEQUENCE sp_tenant_configuration_seq + START WITH 1 + INCREMENT BY 1 + NO CYCLE; + +CREATE TABLE sp_distribution_set_tag ( + id BIGINT DEFAULT nextval('sp_distributionset_tag_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - active boolean, - forced_time BIGINT, - status INTEGER NOT NULL, - distribution_set BIGINT NOT NULL, - target BIGINT NOT NULL, - rollout BIGINT, - rollout_group BIGINT, - action_type INTEGER NOT NULL, - maintenance_cron_schedule VARCHAR(40), - maintenance_duration VARCHAR(40), - maintenance_time_zone VARCHAR(40), - external_ref VARCHAR(512), - weight INTEGER NOT NULL, - initiated_by VARCHAR(64) NOT NULL, - last_action_status_code INTEGER + description VARCHAR(512), + name VARCHAR(128), + colour VARCHAR(16), + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set_tag ON sp_distribution_set_tag (name, tenant); +CREATE INDEX sp_idx_distribution_set_tag_01_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, name); +CREATE INDEX sp_idx_distribution_set_tag_prim_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, id); -CREATE SEQUENCE sp_action_status_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_action_status ( - id BIGINT DEFAULT nextval('sp_action_status_seq') NOT NULL, +CREATE TABLE sp_distribution_set_type ( + id BIGINT DEFAULT nextval('sp_distribution_set_type_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - target_occurred_at BIGINT NOT NULL, - status INTEGER NOT NULL, - action BIGINT NOT NULL, - code INTEGER + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set_type_type_key ON sp_distribution_set_type (type_key, tenant); +CREATE UNIQUE INDEX uk_distribution_set_type_name ON sp_distribution_set_type (name, tenant); +CREATE INDEX sp_idx_distribution_set_type_prim_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, id); +CREATE INDEX sp_idx_distribution_set_type_01_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, deleted); -CREATE TABLE sp_action_status_messages ( - action_status BIGINT NOT NULL, - detail_message VARCHAR(512) NOT NULL +CREATE TABLE sp_software_module_type ( + id BIGINT DEFAULT nextval('sp_software_module_type_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + deleted BOOLEAN, + type_key VARCHAR(64) NOT NULL, + max_ds_assignments INTEGER NOT NULL, + min_artifacts INTEGER DEFAULT 0 NOT NULL, + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_software_module_type_type_key ON sp_software_module_type (type_key, tenant); +CREATE UNIQUE INDEX uk_software_module_type_name ON sp_software_module_type (name, tenant); +CREATE INDEX sp_idx_software_module_type_prim_sp_software_module_type ON sp_software_module_type USING btree (tenant, id); +CREATE INDEX sp_idx_software_module_type_01_sp_software_module_type ON sp_software_module_type USING btree (tenant, deleted); -CREATE SEQUENCE sp_artifact_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_artifact ( - id BIGINT DEFAULT nextval('sp_artifact_seq') NOT NULL, +CREATE TABLE sp_target_tag ( + id BIGINT DEFAULT nextval('sp_target_tag_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - md5_hash VARCHAR(32), - file_size BIGINT, - provided_file_name VARCHAR(256), - sha1_hash VARCHAR(40) NOT NULL, - software_module BIGINT NOT NULL, - sha256_hash CHAR(64) + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_tag ON sp_target_tag (name, tenant); +CREATE INDEX sp_idx_target_tag_prim_sp_target_tag ON sp_target_tag USING btree (tenant, id); +CREATE INDEX sp_idx_target_tag_01_sp_target_tag ON sp_target_tag USING btree (tenant, name); + +CREATE TABLE sp_target_type ( + id BIGINT DEFAULT nextval('sp_target_type_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + description VARCHAR(512), + name VARCHAR(128) NOT NULL, + colour VARCHAR(16), + type_key VARCHAR(64) NOT NULL, + PRIMARY KEY (id) +); +CREATE UNIQUE INDEX uk_target_type_key ON sp_target_type (type_key, tenant); +CREATE UNIQUE INDEX uk_target_name ON sp_target_type (name, tenant); +CREATE INDEX sp_idx_target_type_prim ON sp_target_type USING btree (tenant, id); + +CREATE TABLE sp_tenant_configuration ( + id BIGINT DEFAULT nextval('sp_tenant_configuration_seq') NOT NULL, + created_at BIGINT, + created_by VARCHAR(64), + last_modified_at BIGINT, + last_modified_by VARCHAR(64), + optlock_revision BIGINT, + tenant VARCHAR(40) NOT NULL, + conf_key VARCHAR(128) NOT NULL, + conf_value VARCHAR(512) NOT NULL, + PRIMARY KEY (id) +); +CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant); -CREATE SEQUENCE sp_distribution_set_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; CREATE TABLE sp_distribution_set ( id BIGINT DEFAULT nextval('sp_distribution_set_seq') NOT NULL, created_at BIGINT, @@ -85,38 +194,50 @@ CREATE TABLE sp_distribution_set ( optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, description VARCHAR(512), - name VARCHAR(128), + name VARCHAR(128) NOT NULL, version VARCHAR(64) NOT NULL, - deleted boolean, - required_migration_step boolean, + deleted BOOLEAN, + required_migration_step BOOLEAN, ds_type BIGINT NOT NULL, - valid boolean, - locked boolean DEFAULT TRUE NOT NULL + valid BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set ON sp_distribution_set (tenant, name, version, ds_type); +CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set USING btree (tenant, deleted); +CREATE INDEX sp_idx_distribution_set_prim_sp_distribution_set ON sp_distribution_set USING btree (tenant, id); +ALTER TABLE sp_distribution_set + ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; -CREATE SEQUENCE sp_distributionset_tag_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_distribution_set_tag ( - id BIGINT DEFAULT nextval('sp_distributionset_tag_seq') NOT NULL, +CREATE TABLE sp_tenant ( + id BIGINT DEFAULT nextval('sp_tenant_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16) + default_ds_type BIGINT NOT NULL, + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_tenant ON sp_tenant (tenant); +CREATE INDEX sp_idx_tenant_prim_sp_tenant ON sp_tenant USING btree (tenant, id); +ALTER TABLE sp_tenant + ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; -CREATE SEQUENCE sp_distribution_set_type_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_distribution_set_type ( - id BIGINT DEFAULT nextval('sp_distribution_set_type_seq') NOT NULL, +CREATE TABLE sp_ds_type_element ( + mandatory BOOLEAN, + distribution_set_type BIGINT NOT NULL, + software_module_type BIGINT NOT NULL, + PRIMARY KEY (distribution_set_type, software_module_type) +); +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; +ALTER TABLE sp_ds_type_element + ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; + +CREATE TABLE sp_software_module ( + id BIGINT DEFAULT nextval('sp_base_software_module_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -124,45 +245,51 @@ CREATE TABLE sp_distribution_set_type ( optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16), - deleted boolean, - type_key VARCHAR(64) NOT NULL + name VARCHAR(128) NOT NULL, + version VARCHAR(64) NOT NULL, + deleted BOOLEAN, + vendor VARCHAR(256), + sm_type BIGINT NOT NULL, + encrypted BOOLEAN, + locked BOOLEAN DEFAULT TRUE NOT NULL, + PRIMARY KEY (id) +); +CREATE UNIQUE INDEX uk_software_module ON sp_software_module (sm_type, name, version, tenant); +CREATE INDEX sp_idx_software_module_01 ON sp_software_module USING btree (tenant, deleted, name, version); +CREATE INDEX sp_idx_software_module_02 ON sp_software_module USING btree (tenant, deleted, sm_type); +CREATE INDEX sp_idx_software_module_prim ON sp_software_module USING btree (tenant, id); +ALTER TABLE sp_software_module + ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT; + +CREATE TABLE sp_target_type_ds_type ( + target_type BIGINT NOT NULL, + distribution_set_type BIGINT NOT NULL, + PRIMARY KEY (target_type, distribution_set_type) ); +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; +ALTER TABLE sp_target_type_ds_type + ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; CREATE TABLE sp_ds_metadata ( meta_key VARCHAR(128) NOT NULL, meta_value VARCHAR(4000), - ds BIGINT NOT NULL -); - -CREATE TABLE sp_ds_sm ( - ds_id BIGINT NOT NULL, - sm_id BIGINT NOT NULL + ds BIGINT NOT NULL, + PRIMARY KEY (ds, meta_key) ); +ALTER TABLE sp_ds_metadata + ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; CREATE TABLE sp_ds_tag ( ds BIGINT NOT NULL, - tag BIGINT NOT NULL -); - -CREATE TABLE sp_ds_type_element ( - mandatory boolean, - distribution_set_type BIGINT NOT NULL, - software_module_type BIGINT NOT NULL -); - -CREATE TABLE sp_lock ( - lock_key CHAR(36) NOT NULL, - region VARCHAR(100) NOT NULL, - client_id CHAR(36), - created_date TIMESTAMP WITHOUT TIME ZONE NOT NULL + tag BIGINT NOT NULL, + PRIMARY KEY (ds, tag) ); +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; +ALTER TABLE sp_ds_tag + ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag(id) ON UPDATE RESTRICT ON DELETE CASCADE; -CREATE SEQUENCE sp_rollout_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; CREATE TABLE sp_rollout ( id BIGINT DEFAULT nextval('sp_rollout_seq') NOT NULL, created_at BIGINT, @@ -172,7 +299,7 @@ CREATE TABLE sp_rollout ( optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, description VARCHAR(512), - name VARCHAR(128), + name VARCHAR(128) NOT NULL, last_check BIGINT, group_theshold REAL, status INTEGER NOT NULL, @@ -182,21 +309,22 @@ CREATE TABLE sp_rollout ( total_targets BIGINT, rollout_groups_created BIGINT, start_at BIGINT, - deleted boolean, + deleted BOOLEAN, action_type INTEGER NOT NULL, approval_decided_by VARCHAR(64), approval_remark VARCHAR(255), weight INTEGER NOT NULL, access_control_context VARCHAR(4096), - is_dynamic boolean + is_dynamic BOOLEAN, + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_rollout_sp_rollout ON sp_rollout (name, tenant); +CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout USING btree (tenant, status); +ALTER TABLE sp_rollout + ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; -CREATE SEQUENCE sp_rolloutgroup_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_rollout_group ( - id BIGINT DEFAULT nextval('sp_rolloutgroup_seq') NOT NULL, +CREATE TABLE sp_target ( + id BIGINT DEFAULT nextval('sp_target_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -204,86 +332,100 @@ CREATE TABLE sp_rollout_group ( optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, description VARCHAR(512), - name VARCHAR(128), - error_condition INTEGER, - error_condition_exp VARCHAR(512), - error_action INTEGER, - error_action_exp VARCHAR(512), - success_condition INTEGER NOT NULL, - success_condition_exp VARCHAR(512) NOT NULL, - success_action INTEGER NOT NULL, - success_action_exp VARCHAR(512), - status INTEGER NOT NULL, - parent BIGINT, - rollout BIGINT NOT NULL, - total_targets BIGINT, - target_percentage REAL, - target_filter VARCHAR(1024), - confirmation_required boolean, - is_dynamic boolean DEFAULT FALSE NOT NULL -); - -CREATE TABLE sp_rollout_target_group ( - target BIGINT NOT NULL, - rollout_group BIGINT NOT NULL -); - -CREATE TABLE sp_sm_metadata ( - meta_key VARCHAR(128) NOT NULL, - meta_value VARCHAR(4000), - sm BIGINT NOT NULL, - target_visible boolean + name VARCHAR(128) NOT NULL, + controller_id VARCHAR(256) NOT NULL, + sec_token VARCHAR(128) NOT NULL, + assigned_distribution_set BIGINT, + install_date BIGINT, + address VARCHAR(512), + last_target_query BIGINT, + request_controller_attributes BOOLEAN NOT NULL, + installed_distribution_set BIGINT, + update_status INTEGER NOT NULL, + target_type BIGINT, + target_group VARCHAR(256), + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target ON sp_target (controller_id, tenant); +CREATE INDEX sp_idx_target_01_sp_target ON sp_target USING btree (tenant, name, assigned_distribution_set); +CREATE INDEX sp_idx_target_03_sp_target ON sp_target USING btree (tenant, controller_id, assigned_distribution_set); +CREATE INDEX sp_idx_target_04_sp_target ON sp_target USING btree (tenant, created_at); +CREATE INDEX sp_idx_target_05 ON sp_target USING btree (tenant, last_modified_at); +CREATE INDEX sp_idx_target_group ON sp_target USING btree (tenant, target_group); +CREATE INDEX sp_idx_target_prim_sp_target ON sp_target USING btree (tenant, id); +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; +ALTER TABLE sp_target + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON UPDATE RESTRICT ON DELETE SET NULL; -CREATE SEQUENCE sp_base_software_module_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_software_module ( - id BIGINT DEFAULT nextval('sp_base_software_module_seq') NOT NULL, +CREATE TABLE sp_target_filter_query ( + id BIGINT DEFAULT nextval('sp_target_filter_query_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - version VARCHAR(64) NOT NULL, - deleted boolean, - vendor VARCHAR(256), - sm_type BIGINT NOT NULL, - encrypted boolean, - locked boolean DEFAULT TRUE NOT NULL + name VARCHAR(128) NOT NULL, + query VARCHAR(1024) NOT NULL, + auto_assign_distribution_set BIGINT, + auto_assign_action_type INTEGER, + auto_assign_weight INTEGER NOT NULL, + auto_assign_initiated_by VARCHAR(64), + confirmation_required BOOLEAN, + access_control_context VARCHAR(4096), + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant); +ALTER TABLE sp_target_filter_query + ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE SET NULL; -CREATE SEQUENCE sp_software_module_type_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_software_module_type ( - id BIGINT DEFAULT nextval('sp_software_module_type_seq') NOT NULL, +CREATE TABLE sp_artifact ( + id BIGINT DEFAULT nextval('sp_artifact_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16), - deleted boolean, - type_key VARCHAR(64) NOT NULL, - max_ds_assignments INTEGER NOT NULL, - min_artifacts INTEGER DEFAULT 0 NOT NULL + md5_hash VARCHAR(32), + file_size BIGINT, + provided_file_name VARCHAR(256), + sha1_hash VARCHAR(40) NOT NULL, + software_module BIGINT NOT NULL, + sha256_hash CHAR(64), + PRIMARY KEY (id) ); +CREATE INDEX sp_idx_artifact_prim_sp_artifact ON sp_artifact USING btree (tenant, id); +CREATE INDEX sp_idx_artifact_01_sp_artifact ON sp_artifact USING btree (tenant, software_module); +CREATE INDEX sp_idx_artifact_02_sp_artifact ON sp_artifact USING btree (tenant, sha1_hash); +ALTER TABLE sp_artifact + ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; -CREATE SEQUENCE sp_target_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_target ( - id BIGINT DEFAULT nextval('sp_target_seq') NOT NULL, +CREATE TABLE sp_ds_sm ( + ds_id BIGINT NOT NULL, + sm_id BIGINT NOT NULL, + PRIMARY KEY (ds_id, sm_id) +); +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; +ALTER TABLE sp_ds_sm + ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; + +CREATE TABLE sp_sm_metadata ( + meta_key VARCHAR(128) NOT NULL, + meta_value VARCHAR(4000), + sm BIGINT NOT NULL, + target_visible BOOLEAN, + PRIMARY KEY (meta_key, sm) +); +ALTER TABLE sp_sm_metadata + ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; + +CREATE TABLE sp_rollout_group ( + id BIGINT DEFAULT nextval('sp_rolloutgroup_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -291,336 +433,148 @@ CREATE TABLE sp_target ( optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, description VARCHAR(512), - name VARCHAR(128), - controller_id VARCHAR(256), - sec_token VARCHAR(128) NOT NULL, - assigned_distribution_set BIGINT, - install_date BIGINT, - address VARCHAR(512), - last_target_query BIGINT, - request_controller_attributes boolean NOT NULL, - installed_distribution_set BIGINT, - update_status INTEGER NOT NULL, - target_type BIGINT, - target_group VARCHAR(256) + name VARCHAR(128) NOT NULL, + error_condition INTEGER, + error_condition_exp VARCHAR(512), + error_action INTEGER, + error_action_exp VARCHAR(512), + success_condition INTEGER NOT NULL, + success_condition_exp VARCHAR(512) NOT NULL, + success_action INTEGER NOT NULL, + success_action_exp VARCHAR(512), + status INTEGER NOT NULL, + parent BIGINT, + rollout BIGINT NOT NULL, + total_targets BIGINT, + target_percentage REAL, + target_filter VARCHAR(1024), + confirmation_required BOOLEAN, + is_dynamic BOOLEAN DEFAULT FALSE NOT NULL, + PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_rollout_group ON sp_rollout_group (name, rollout, tenant); +ALTER TABLE sp_rollout_group + ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON UPDATE RESTRICT ON DELETE CASCADE; CREATE TABLE sp_target_attributes ( target BIGINT NOT NULL, attribute_value VARCHAR(128), - attribute_key VARCHAR(128) NOT NULL + attribute_key VARCHAR(128) NOT NULL, + PRIMARY KEY (target, attribute_key) ); +CREATE INDEX sp_idx_target_attributes_target_id ON sp_target_attributes USING btree (target); +ALTER TABLE sp_target_attributes + ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; CREATE TABLE sp_target_conf_status ( - id BIGINT NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, target BIGINT NOT NULL, initiator VARCHAR(64), remark VARCHAR(512), - tenant VARCHAR(40) NOT NULL, - created_at BIGINT NOT NULL, - created_by VARCHAR(64) NOT NULL, - last_modified_at BIGINT NOT NULL, - last_modified_by VARCHAR(64) NOT NULL, - optlock_revision BIGINT -); - -CREATE SEQUENCE sp_target_conf_status_id_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -ALTER SEQUENCE sp_target_conf_status_id_seq OWNED BY sp_target_conf_status.id; - -CREATE SEQUENCE sp_target_filter_query_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_target_filter_query ( - id BIGINT DEFAULT nextval('sp_target_filter_query_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - name VARCHAR(128), - query VARCHAR(1024) NOT NULL, - auto_assign_distribution_set BIGINT, - auto_assign_action_type INTEGER, - auto_assign_weight INTEGER NOT NULL, - auto_assign_initiated_by VARCHAR(64), - confirmation_required boolean, - access_control_context VARCHAR(4096) + PRIMARY KEY (id) ); +ALTER TABLE sp_target_conf_status + ADD CONSTRAINT fk_target_conf_status_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_metadata ( meta_key VARCHAR(128) NOT NULL, meta_value VARCHAR(4000), - target BIGINT NOT NULL -); - -CREATE SEQUENCE sp_target_tag_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_target_tag ( - id BIGINT DEFAULT nextval('sp_target_tag_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16) + target BIGINT NOT NULL, + PRIMARY KEY (target, meta_key) ); +ALTER TABLE sp_target_metadata + ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; CREATE TABLE sp_target_target_tag ( target BIGINT NOT NULL, - tag BIGINT NOT NULL + tag BIGINT NOT NULL, + PRIMARY KEY (target, tag) ); +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag(id) ON UPDATE RESTRICT ON DELETE CASCADE; +ALTER TABLE sp_target_target_tag + ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; -CREATE SEQUENCE sp_target_type_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_target_type ( - id BIGINT DEFAULT nextval('sp_target_type_seq') NOT NULL, +CREATE TABLE sp_action ( + id BIGINT DEFAULT nextval('sp_action_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - description VARCHAR(512), - name VARCHAR(128), - colour VARCHAR(16), - type_key VARCHAR(64) DEFAULT '_'::VARCHAR NOT NULL + active BOOLEAN, + forced_time BIGINT, + status INTEGER NOT NULL, + distribution_set BIGINT NOT NULL, + target BIGINT NOT NULL, + rollout BIGINT, + rollout_group BIGINT, + action_type INTEGER NOT NULL, + maintenance_cron_schedule VARCHAR(40), + maintenance_duration VARCHAR(40), + maintenance_time_zone VARCHAR(40), + external_ref VARCHAR(512), + weight INTEGER NOT NULL, + initiated_by VARCHAR(64) NOT NULL, + last_action_status_code INTEGER, + PRIMARY KEY (id) ); +CREATE INDEX sp_idx_action_prim_sp_action ON sp_action USING btree (tenant, id); +CREATE INDEX sp_idx_action_01_sp_action ON sp_action USING btree (tenant, distribution_set); +CREATE INDEX sp_idx_action_02_sp_action ON sp_action USING btree (tenant, target, active); +CREATE INDEX sp_idx_action_external_ref_sp_action ON sp_action USING btree (external_ref); +CREATE INDEX sp_idx_action_target ON sp_action USING btree (target); +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; +ALTER TABLE sp_action + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; -CREATE TABLE sp_target_type_ds_type ( - target_type BIGINT NOT NULL, - distribution_set_type BIGINT NOT NULL +CREATE TABLE sp_rollout_target_group ( + target BIGINT NOT NULL, + rollout_group BIGINT NOT NULL, + PRIMARY KEY (rollout_group, target) ); +CREATE INDEX sp_idx_rollout_target_group_target ON sp_rollout_target_group USING btree (target); +ALTER TABLE sp_rollout_target_group + ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON UPDATE RESTRICT ON DELETE CASCADE; +ALTER TABLE sp_rollout_target_group + ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; -CREATE SEQUENCE sp_tenant_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_tenant ( - id BIGINT DEFAULT nextval('sp_tenant_seq') NOT NULL, +CREATE TABLE sp_action_status ( + id BIGINT DEFAULT nextval('sp_action_status_seq') NOT NULL, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, last_modified_by VARCHAR(64), optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, - default_ds_type BIGINT NOT NULL + target_occurred_at BIGINT NOT NULL, + status INTEGER NOT NULL, + action BIGINT NOT NULL, + code INTEGER, + PRIMARY KEY (id) ); +CREATE INDEX sp_idx_action_status_prim_sp_action_status ON sp_action_status USING btree (tenant, id); +CREATE INDEX sp_idx_action_status_02_sp_action_status ON sp_action_status USING btree (tenant, action, status); +CREATE INDEX sp_idx_action_status_03 ON sp_action_status USING btree (tenant, code); +ALTER TABLE sp_action_status + ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action(id) ON UPDATE RESTRICT ON DELETE CASCADE; -CREATE SEQUENCE sp_tenant_configuration_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE TABLE sp_tenant_configuration ( - id BIGINT DEFAULT nextval('sp_tenant_configuration_seq') NOT NULL, - created_at BIGINT, - created_by VARCHAR(64), - last_modified_at BIGINT, - last_modified_by VARCHAR(64), - optlock_revision BIGINT, - tenant VARCHAR(40) NOT NULL, - conf_key VARCHAR(128) NOT NULL, - conf_value VARCHAR(512) NOT NULL +CREATE TABLE sp_action_status_messages ( + action_status BIGINT NOT NULL, + detail_message VARCHAR(512) NOT NULL ); - -ALTER TABLE ONLY sp_target_conf_status ALTER COLUMN id SET DEFAULT nextval('sp_target_conf_status_id_seq'); -ALTER TABLE ONLY sp_action - ADD CONSTRAINT pk_action PRIMARY KEY (id); -ALTER TABLE ONLY sp_action_status - ADD CONSTRAINT pk_action_status PRIMARY KEY (id); -ALTER TABLE ONLY sp_artifact - ADD CONSTRAINT pk_artifact PRIMARY KEY (id); -ALTER TABLE ONLY sp_distribution_set - ADD CONSTRAINT pk_distribution_set PRIMARY KEY (id); -ALTER TABLE ONLY sp_distribution_set_tag - ADD CONSTRAINT pk_distribution_set_tag PRIMARY KEY (id); -ALTER TABLE ONLY sp_distribution_set_type - ADD CONSTRAINT pk_distribution_set_type PRIMARY KEY (id); -ALTER TABLE ONLY sp_ds_metadata - ADD CONSTRAINT pk_ds_metadata PRIMARY KEY (ds, meta_key); -ALTER TABLE ONLY sp_ds_sm - ADD CONSTRAINT pk_ds_sm PRIMARY KEY (ds_id, sm_id); -ALTER TABLE ONLY sp_ds_tag - ADD CONSTRAINT pk_ds_tag PRIMARY KEY (ds, tag); -ALTER TABLE ONLY sp_ds_type_element - ADD CONSTRAINT pk_ds_type_element PRIMARY KEY (distribution_set_type, software_module_type); -ALTER TABLE ONLY sp_rollout - ADD CONSTRAINT pk_rollout PRIMARY KEY (id); -ALTER TABLE ONLY sp_rollout_group - ADD CONSTRAINT pk_rollout_group PRIMARY KEY (id); -ALTER TABLE ONLY sp_rollout_target_group - ADD CONSTRAINT pk_rollout_target_group PRIMARY KEY (rollout_group, target); -ALTER TABLE ONLY sp_sm_metadata - ADD CONSTRAINT pk_sm_metadata PRIMARY KEY (meta_key, sm); -ALTER TABLE ONLY sp_software_module - ADD CONSTRAINT pk_software_module PRIMARY KEY (id); -ALTER TABLE ONLY sp_software_module_type - ADD CONSTRAINT pk_software_module_type PRIMARY KEY (id); -ALTER TABLE ONLY sp_target_conf_status - ADD CONSTRAINT pk_sp_target_conf_status PRIMARY KEY (id); -ALTER TABLE ONLY sp_target_type - ADD CONSTRAINT pk_sp_target_type PRIMARY KEY (id); -ALTER TABLE ONLY sp_target - ADD CONSTRAINT pk_target PRIMARY KEY (id); -ALTER TABLE ONLY sp_target_attributes - ADD CONSTRAINT pk_target_attributes PRIMARY KEY (target, attribute_key); -ALTER TABLE ONLY sp_target_filter_query - ADD CONSTRAINT pk_target_filter_query PRIMARY KEY (id); -ALTER TABLE ONLY sp_target_metadata - ADD CONSTRAINT pk_target_metadata PRIMARY KEY (target, meta_key); -ALTER TABLE ONLY sp_target_tag - ADD CONSTRAINT pk_target_tag PRIMARY KEY (id); -ALTER TABLE ONLY sp_target_target_tag - ADD CONSTRAINT pk_target_target_tag PRIMARY KEY (target, tag); -ALTER TABLE ONLY sp_tenant - ADD CONSTRAINT pk_tenant PRIMARY KEY (id); -ALTER TABLE ONLY sp_tenant_configuration - ADD CONSTRAINT pk_tenant_configuration PRIMARY KEY (id); -ALTER TABLE ONLY sp_lock - ADD CONSTRAINT sp_lock_pk PRIMARY KEY (lock_key, region); -ALTER TABLE ONLY sp_distribution_set - ADD CONSTRAINT uk_distribution_set UNIQUE (tenant, NAME, version, ds_type); -ALTER TABLE ONLY sp_distribution_set_tag - ADD CONSTRAINT uk_distribution_set_tag UNIQUE (NAME, tenant); -ALTER TABLE ONLY sp_distribution_set_type - ADD CONSTRAINT uk_distribution_set_type_name UNIQUE (NAME, tenant); -ALTER TABLE ONLY sp_distribution_set_type - ADD CONSTRAINT uk_distribution_set_type_type_key UNIQUE (type_key, tenant); -ALTER TABLE ONLY sp_rollout_group - ADD CONSTRAINT uk_rollout_group UNIQUE (NAME, rollout, tenant); -ALTER TABLE ONLY sp_rollout - ADD CONSTRAINT uk_rollout_sp_rollout UNIQUE (NAME, tenant); -ALTER TABLE ONLY sp_software_module - ADD CONSTRAINT uk_software_module UNIQUE (sm_type, NAME, version, tenant); -ALTER TABLE ONLY sp_software_module_type - ADD CONSTRAINT uk_software_module_type_name UNIQUE (NAME, tenant); -ALTER TABLE ONLY sp_software_module_type - ADD CONSTRAINT uk_software_module_type_type_key UNIQUE (type_key, tenant); -ALTER TABLE ONLY sp_target - ADD CONSTRAINT uk_target UNIQUE (controller_id, tenant); -ALTER TABLE ONLY sp_target_filter_query - ADD CONSTRAINT uk_target_filter_query UNIQUE (NAME, tenant); -ALTER TABLE ONLY sp_target_type - ADD CONSTRAINT uk_target_name UNIQUE (NAME, tenant); -ALTER TABLE ONLY sp_target_tag - ADD CONSTRAINT uk_target_tag UNIQUE (NAME, tenant); -ALTER TABLE ONLY sp_target_type - ADD CONSTRAINT uk_target_type_key UNIQUE (type_key, tenant); -ALTER TABLE ONLY sp_tenant - ADD CONSTRAINT uk_tenant UNIQUE (tenant); -ALTER TABLE ONLY sp_tenant_configuration - ADD CONSTRAINT uk_tenant_configuration UNIQUE (conf_key, tenant); - CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages USING btree (action_status); -CREATE INDEX sp_idx_action_01_sp_action ON sp_action USING btree (tenant, distribution_set); -CREATE INDEX sp_idx_action_02_sp_action ON sp_action USING btree (tenant, target, active); -CREATE INDEX sp_idx_action_external_ref_sp_action ON sp_action USING btree (external_ref); -CREATE INDEX sp_idx_action_prim_sp_action ON sp_action USING btree (tenant, id); -CREATE INDEX sp_idx_action_status_02_sp_action_status ON sp_action_status USING btree (tenant, ACTION, status); -CREATE INDEX sp_idx_action_status_03 ON sp_action_status USING btree (tenant, code); -CREATE INDEX sp_idx_action_status_prim_sp_action_status ON sp_action_status USING btree (tenant, id); -CREATE INDEX sp_idx_action_target ON sp_action USING btree (target); -CREATE INDEX sp_idx_artifact_01_sp_artifact ON sp_artifact USING btree (tenant, software_module); -CREATE INDEX sp_idx_artifact_02_sp_artifact ON sp_artifact USING btree (tenant, sha1_hash); -CREATE INDEX sp_idx_artifact_prim_sp_artifact ON sp_artifact USING btree (tenant, id); -CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set USING btree (tenant, deleted); -CREATE INDEX sp_idx_distribution_set_prim_sp_distribution_set ON sp_distribution_set USING btree (tenant, id); -CREATE INDEX sp_idx_distribution_set_tag_01_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, NAME); -CREATE INDEX sp_idx_distribution_set_tag_prim_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, id); -CREATE INDEX sp_idx_distribution_set_type_01_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, deleted); -CREATE INDEX sp_idx_distribution_set_type_prim_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, id); -CREATE INDEX sp_idx_rollout_group_parent ON sp_rollout_group USING btree (parent); -CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout USING btree (tenant, status); -CREATE INDEX sp_idx_rollout_target_group_target ON sp_rollout_target_group USING btree (target); -CREATE INDEX sp_idx_software_module_01 ON sp_software_module USING btree (tenant, deleted, NAME, version); -CREATE INDEX sp_idx_software_module_02 ON sp_software_module USING btree (tenant, deleted, sm_type); -CREATE INDEX sp_idx_software_module_prim ON sp_software_module USING btree (tenant, id); -CREATE INDEX sp_idx_software_module_type_01_sp_software_module_type ON sp_software_module_type USING btree (tenant, deleted); -CREATE INDEX sp_idx_software_module_type_prim_sp_software_module_type ON sp_software_module_type USING btree (tenant, id); -CREATE INDEX sp_idx_target_01_sp_target ON sp_target USING btree (tenant, NAME, assigned_distribution_set); -CREATE INDEX sp_idx_target_03_sp_target ON sp_target USING btree (tenant, controller_id, assigned_distribution_set); -CREATE INDEX sp_idx_target_04_sp_target ON sp_target USING btree (tenant, created_at); -CREATE INDEX sp_idx_target_05 ON sp_target USING btree (tenant, last_modified_at); -CREATE INDEX sp_idx_target_attributes_target_id ON sp_target_attributes USING btree (target); -CREATE INDEX sp_idx_target_group ON sp_target USING btree (tenant, target_group); -CREATE INDEX sp_idx_target_prim_sp_target ON sp_target USING btree (tenant, id); -CREATE INDEX sp_idx_target_tag_01_sp_target_tag ON sp_target_tag USING btree (tenant, NAME); -CREATE INDEX sp_idx_target_tag_prim_sp_target_tag ON sp_target_tag USING btree (tenant, id); -CREATE INDEX sp_idx_target_type_prim ON sp_target_type USING btree (tenant, id); -CREATE INDEX sp_idx_tenant_prim_sp_tenant ON sp_tenant USING btree (tenant, id); - -ALTER TABLE ONLY sp_action - ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_action - ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_action - ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_action_status - ADD CONSTRAINT fk_action_status_action FOREIGN KEY (ACTION) REFERENCES sp_action(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_action_status_messages - ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_action - ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_artifact - ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_distribution_set - ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_ds_metadata - ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_ds_sm - ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_ds_sm - ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_ds_tag - ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_ds_tag - ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_rollout - ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_rollout_group - ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_rollout_target_group - ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_rollout_target_group - ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_sm_metadata - ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_software_module - ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_tenant - ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_target - ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_target_attributes - ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_target_filter_query - ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE SET NULL; -ALTER TABLE ONLY sp_target - ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT; -ALTER TABLE ONLY sp_target_metadata - ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_target - ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON UPDATE RESTRICT ON DELETE SET NULL; -ALTER TABLE ONLY sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; -ALTER TABLE ONLY sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; \ No newline at end of file +ALTER TABLE sp_action_status_messages + ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status(id) ON UPDATE RESTRICT ON DELETE CASCADE; \ No newline at end of file From d184284faf701b6e5ec060ccbfa56a8b07cb6fac Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Thu, 5 Feb 2026 12:59:09 +0200 Subject: [PATCH 4/4] Refactor B1_POSTGRES index names --- .../H2/B1_20_0__1.0.0_baseline__H2.sql | 66 ++--- .../MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql | 59 ++--- .../B1_20_0__1.0.0_baseline__POSTGRESQL.sql | 243 +++++++----------- 3 files changed, 150 insertions(+), 218 deletions(-) diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql index 02b350e3c1..2586cdb925 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/H2/B1_20_0__1.0.0_baseline__H2.sql @@ -138,7 +138,7 @@ CREATE UNIQUE INDEX uk_distribution_set ON sp_distribution_set (tenant, name, ve CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant, id); CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant, deleted); ALTER TABLE sp_distribution_set - ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id) NOCHECK; + ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id); CREATE TABLE sp_tenant ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -154,7 +154,7 @@ CREATE TABLE sp_tenant ( CREATE UNIQUE INDEX uk_tenant ON sp_tenant (tenant); CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant, id); ALTER TABLE sp_tenant - ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id) NOCHECK; + ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id); CREATE TABLE sp_ds_type_element ( mandatory BOOLEAN, @@ -163,9 +163,9 @@ CREATE TABLE sp_ds_type_element ( PRIMARY KEY (distribution_set_type, software_module_type) ); ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE; CREATE TABLE sp_software_module ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -190,7 +190,7 @@ CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant, deleted, n CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant, deleted, sm_type); CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant, id); ALTER TABLE sp_software_module - ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id) NOCHECK; + ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id); CREATE TABLE sp_target_type_ds_type ( target_type BIGINT NOT NULL, @@ -198,9 +198,9 @@ CREATE TABLE sp_target_type_ds_type ( PRIMARY KEY (target_type, distribution_set_type) ); ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE; CREATE TABLE sp_ds_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -209,7 +209,7 @@ CREATE TABLE sp_ds_metadata ( PRIMARY KEY (ds, meta_key) ); ALTER TABLE sp_ds_metadata - ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; CREATE TABLE sp_ds_tag ( ds BIGINT NOT NULL, @@ -217,9 +217,9 @@ CREATE TABLE sp_ds_tag ( PRIMARY KEY (ds, tag) ); ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; CREATE TABLE sp_rollout ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -252,7 +252,7 @@ CREATE TABLE sp_rollout ( CREATE UNIQUE INDEX uk_rollout ON sp_rollout (name, tenant); CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant, status); ALTER TABLE sp_rollout - ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; + ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); CREATE TABLE sp_target ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -285,11 +285,11 @@ CREATE INDEX sp_idx_target_prim ON sp_target (tenant, id); CREATE INDEX sp_idx_target_05 ON sp_target (tenant, last_modified_at); CREATE INDEX sp_idx_target_group ON sp_target (tenant, target_group); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL NOCHECK; + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL; CREATE TABLE sp_target_filter_query ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -311,7 +311,7 @@ CREATE TABLE sp_target_filter_query ( ); CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant); ALTER TABLE sp_target_filter_query - ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL NOCHECK; + ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL; CREATE TABLE sp_artifact ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -333,7 +333,7 @@ CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant, id); CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant, software_module); CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant, sha1_hash); ALTER TABLE sp_artifact - ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_ds_sm ( ds_id BIGINT NOT NULL, @@ -341,9 +341,9 @@ CREATE TABLE sp_ds_sm ( PRIMARY KEY (ds_id, sm_id) ); ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_sm_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -353,7 +353,7 @@ CREATE TABLE sp_sm_metadata ( PRIMARY KEY (meta_key, sm) ); ALTER TABLE sp_sm_metadata - ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_rollout_group ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -385,7 +385,7 @@ CREATE TABLE sp_rollout_group ( ); CREATE UNIQUE INDEX uk_rollout_group ON sp_rollout_group (name, rollout, tenant); ALTER TABLE sp_rollout_group - ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE; CREATE TABLE sp_target_attributes ( target BIGINT NOT NULL, @@ -394,7 +394,7 @@ CREATE TABLE sp_target_attributes ( PRIMARY KEY (target, attribute_key) ); ALTER TABLE sp_target_attributes - ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_conf_status ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -410,7 +410,7 @@ CREATE TABLE sp_target_conf_status ( PRIMARY KEY (id) ); ALTER TABLE sp_target_conf_status - ADD CONSTRAINT fk_target_conf_status_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_target_conf_status_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -419,7 +419,7 @@ CREATE TABLE sp_target_metadata ( PRIMARY KEY (target, meta_key) ); ALTER TABLE sp_target_metadata - ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_target_tag ( target BIGINT NOT NULL, @@ -427,9 +427,9 @@ CREATE TABLE sp_target_target_tag ( PRIMARY KEY (target, tag) ); ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE; CREATE TABLE sp_action ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -461,13 +461,13 @@ CREATE INDEX sp_idx_action_01 ON sp_action (tenant, distribution_set); CREATE INDEX sp_idx_action_02 ON sp_action (tenant, target, active); CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id) NOCHECK; + ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) NOCHECK; + ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) NOCHECK; + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id); CREATE TABLE sp_rollout_target_group ( target BIGINT NOT NULL, @@ -475,9 +475,9 @@ CREATE TABLE sp_rollout_target_group ( PRIMARY KEY (rollout_group, target) ); ALTER TABLE sp_rollout_target_group - ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE; ALTER TABLE sp_rollout_target_group - ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_action_status ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -497,7 +497,7 @@ CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant, id); CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant, action, status); CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant, code); ALTER TABLE sp_action_status - ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE NOCHECK; + ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE; CREATE TABLE sp_action_status_messages ( action_status BIGINT NOT NULL, @@ -505,4 +505,4 @@ CREATE TABLE sp_action_status_messages ( ); CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status); ALTER TABLE sp_action_status_messages - ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE NOCHECK; \ No newline at end of file + ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE; \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql index 6e73c1f42c..9692a129ed 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/MYSQL/B1_20_0__1.0.0_baseline__MYSQL.sql @@ -134,10 +134,11 @@ CREATE TABLE sp_distribution_set ( locked BOOLEAN DEFAULT TRUE NOT NULL, PRIMARY KEY (id) ); +CREATE UNIQUE INDEX uk_distribution_set ON sp_distribution_set (tenant, name, version, ds_type); CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant, id); CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant, deleted); ALTER TABLE sp_distribution_set - ADD CONSTRAINT fk_ds_dstype_ds FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id); + ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id); CREATE TABLE sp_tenant ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -153,7 +154,7 @@ CREATE TABLE sp_tenant ( CREATE UNIQUE INDEX uk_tenant ON sp_tenant (tenant); CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant, id); ALTER TABLE sp_tenant - ADD CONSTRAINT fk_tenant_md_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id); + ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id); CREATE TABLE sp_ds_type_element ( mandatory BOOLEAN, @@ -162,9 +163,9 @@ CREATE TABLE sp_ds_type_element ( PRIMARY KEY (distribution_set_type, software_module_type) ); ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_element FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_smtype FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE; CREATE TABLE sp_software_module ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -189,7 +190,7 @@ CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant, deleted, n CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant, deleted, sm_type); CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant, id); ALTER TABLE sp_software_module - ADD CONSTRAINT fk_module_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id); + ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id); CREATE TABLE sp_target_type_ds_type ( target_type BIGINT NOT NULL, @@ -197,9 +198,9 @@ CREATE TABLE sp_target_type_ds_type ( PRIMARY KEY (target_type, distribution_set_type) ); ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_relation_ds_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE; CREATE TABLE sp_ds_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -208,7 +209,7 @@ CREATE TABLE sp_ds_metadata ( PRIMARY KEY (ds, meta_key) ); ALTER TABLE sp_ds_metadata - ADD CONSTRAINT fk_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; CREATE TABLE sp_ds_tag ( ds BIGINT NOT NULL, @@ -216,9 +217,9 @@ CREATE TABLE sp_ds_tag ( PRIMARY KEY (ds, tag) ); ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_dstag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_dstag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; CREATE TABLE sp_rollout ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -251,7 +252,7 @@ CREATE TABLE sp_rollout ( CREATE UNIQUE INDEX uk_rollout ON sp_rollout (name, tenant); CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant, status); ALTER TABLE sp_rollout - ADD CONSTRAINT fk_rollout_ds FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); + ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); CREATE TABLE sp_target ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -310,7 +311,7 @@ CREATE TABLE sp_target_filter_query ( ); CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant); ALTER TABLE sp_target_filter_query - ADD CONSTRAINT fk_filter_auto_assign_ds FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL; + ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL; CREATE TABLE sp_artifact ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -332,7 +333,7 @@ CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant, id); CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant, software_module); CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant, sha1_hash); ALTER TABLE sp_artifact - ADD CONSTRAINT fk_assigned_sm FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_ds_sm ( ds_id BIGINT NOT NULL, @@ -340,9 +341,9 @@ CREATE TABLE sp_ds_sm ( PRIMARY KEY (ds_id, sm_id) ); ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_module_ds FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_module_module FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_sm_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -352,7 +353,7 @@ CREATE TABLE sp_sm_metadata ( PRIMARY KEY (meta_key, sm) ); ALTER TABLE sp_sm_metadata - ADD CONSTRAINT fk_metadata_sw FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_rollout_group ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -384,7 +385,7 @@ CREATE TABLE sp_rollout_group ( ); CREATE UNIQUE INDEX uk_rollout_group ON sp_rollout_group (name, rollout, tenant); ALTER TABLE sp_rollout_group - ADD CONSTRAINT fk_rolloutgroup_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE; CREATE TABLE sp_target_attributes ( target BIGINT NOT NULL, @@ -393,7 +394,7 @@ CREATE TABLE sp_target_attributes ( PRIMARY KEY (target, attribute_key) ); ALTER TABLE sp_target_attributes - ADD CONSTRAINT fk_targ_attrib_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_conf_status ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -409,7 +410,7 @@ CREATE TABLE sp_target_conf_status ( PRIMARY KEY (id) ); ALTER TABLE sp_target_conf_status - ADD CONSTRAINT fk_target_auto_conf FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_target_conf_status_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -418,7 +419,7 @@ CREATE TABLE sp_target_metadata ( PRIMARY KEY (target, meta_key) ); ALTER TABLE sp_target_metadata - ADD CONSTRAINT fk_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_target_tag ( target BIGINT NOT NULL, @@ -426,9 +427,9 @@ CREATE TABLE sp_target_target_tag ( PRIMARY KEY (target, tag) ); ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_targ_targtag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_targ_targtag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE; CREATE TABLE sp_action ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -460,11 +461,11 @@ CREATE INDEX sp_idx_action_01 ON sp_action (tenant, distribution_set); CREATE INDEX sp_idx_action_02 ON sp_action (tenant, target, active); CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_ds FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); + ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rolloutgroup FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id); + ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_targ_act_hist_targ FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_action ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id); @@ -474,9 +475,9 @@ CREATE TABLE sp_rollout_target_group ( PRIMARY KEY (rollout_group, target) ); ALTER TABLE sp_rollout_target_group - ADD CONSTRAINT fk_rollouttargetgroup_rolloutgroup FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE; ALTER TABLE sp_rollout_target_group - ADD CONSTRAINT fk_rollouttargetgroup_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_action_status ( id BIGINT NOT NULL AUTO_INCREMENT, @@ -496,7 +497,7 @@ CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant, id); CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant, action, status); CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant, code); ALTER TABLE sp_action_status - ADD CONSTRAINT fk_act_stat_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE; + ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE; CREATE TABLE sp_action_status_messages ( action_status BIGINT NOT NULL, @@ -504,4 +505,4 @@ CREATE TABLE sp_action_status_messages ( ); CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status); ALTER TABLE sp_action_status_messages - ADD CONSTRAINT fk_stat_msg_act_stat FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE; \ No newline at end of file + ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE; \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql index 89f8a8ace7..fb81572d87 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql +++ b/hawkbit-repository/hawkbit-repository-jpa-flyway/src/main/resources/db/migration/POSTGRESQL/B1_20_0__1.0.0_baseline__POSTGRESQL.sql @@ -8,77 +8,8 @@ CREATE TABLE SP_LOCK ( -- spring table -- PRIMARY KEY (LOCK_KEY, REGION) ); -CREATE SEQUENCE sp_action_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_action_status_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_artifact_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_distribution_set_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_distributionset_tag_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_distribution_set_type_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_rollout_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_rolloutgroup_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_base_software_module_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_software_module_type_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_target_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_target_conf_status_id_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_target_filter_query_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_target_tag_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_target_type_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_tenant_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; -CREATE SEQUENCE sp_tenant_configuration_seq - START WITH 1 - INCREMENT BY 1 - NO CYCLE; - CREATE TABLE sp_distribution_set_tag ( - id BIGINT DEFAULT nextval('sp_distributionset_tag_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -86,16 +17,16 @@ CREATE TABLE sp_distribution_set_tag ( optlock_revision BIGINT, tenant VARCHAR(40) NOT NULL, description VARCHAR(512), - name VARCHAR(128), + name VARCHAR(128) NOT NULL, colour VARCHAR(16), PRIMARY KEY (id) ); CREATE UNIQUE INDEX uk_distribution_set_tag ON sp_distribution_set_tag (name, tenant); -CREATE INDEX sp_idx_distribution_set_tag_01_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, name); -CREATE INDEX sp_idx_distribution_set_tag_prim_sp_distributionset_tag ON sp_distribution_set_tag USING btree (tenant, id); +CREATE INDEX sp_idx_distribution_set_tag_prim ON sp_distribution_set_tag (tenant, id); +CREATE INDEX sp_idx_distribution_set_tag_01 ON sp_distribution_set_tag (tenant, name); CREATE TABLE sp_distribution_set_type ( - id BIGINT DEFAULT nextval('sp_distribution_set_type_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -111,11 +42,11 @@ CREATE TABLE sp_distribution_set_type ( ); CREATE UNIQUE INDEX uk_distribution_set_type_type_key ON sp_distribution_set_type (type_key, tenant); CREATE UNIQUE INDEX uk_distribution_set_type_name ON sp_distribution_set_type (name, tenant); -CREATE INDEX sp_idx_distribution_set_type_prim_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, id); -CREATE INDEX sp_idx_distribution_set_type_01_sp_distribution_set_type ON sp_distribution_set_type USING btree (tenant, deleted); +CREATE INDEX sp_idx_distribution_set_type_prim ON sp_distribution_set_type (tenant, id); +CREATE INDEX sp_idx_distribution_set_type_01 ON sp_distribution_set_type (tenant, deleted); CREATE TABLE sp_software_module_type ( - id BIGINT DEFAULT nextval('sp_software_module_type_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -133,11 +64,11 @@ CREATE TABLE sp_software_module_type ( ); CREATE UNIQUE INDEX uk_software_module_type_type_key ON sp_software_module_type (type_key, tenant); CREATE UNIQUE INDEX uk_software_module_type_name ON sp_software_module_type (name, tenant); -CREATE INDEX sp_idx_software_module_type_prim_sp_software_module_type ON sp_software_module_type USING btree (tenant, id); -CREATE INDEX sp_idx_software_module_type_01_sp_software_module_type ON sp_software_module_type USING btree (tenant, deleted); +CREATE INDEX sp_idx_software_module_type_prim ON sp_software_module_type (tenant, id); +CREATE INDEX sp_idx_software_module_type_01 ON sp_software_module_type (tenant, deleted); CREATE TABLE sp_target_tag ( - id BIGINT DEFAULT nextval('sp_target_tag_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -150,11 +81,11 @@ CREATE TABLE sp_target_tag ( PRIMARY KEY (id) ); CREATE UNIQUE INDEX uk_target_tag ON sp_target_tag (name, tenant); -CREATE INDEX sp_idx_target_tag_prim_sp_target_tag ON sp_target_tag USING btree (tenant, id); -CREATE INDEX sp_idx_target_tag_01_sp_target_tag ON sp_target_tag USING btree (tenant, name); +CREATE INDEX sp_idx_target_tag_prim ON sp_target_tag (tenant, id); +CREATE INDEX sp_idx_target_tag_01 ON sp_target_tag (tenant, name); CREATE TABLE sp_target_type ( - id BIGINT DEFAULT nextval('sp_target_type_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -169,10 +100,10 @@ CREATE TABLE sp_target_type ( ); CREATE UNIQUE INDEX uk_target_type_key ON sp_target_type (type_key, tenant); CREATE UNIQUE INDEX uk_target_name ON sp_target_type (name, tenant); -CREATE INDEX sp_idx_target_type_prim ON sp_target_type USING btree (tenant, id); +CREATE INDEX sp_idx_target_type_prim ON sp_target_type (tenant, id); CREATE TABLE sp_tenant_configuration ( - id BIGINT DEFAULT nextval('sp_tenant_configuration_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -186,7 +117,7 @@ CREATE TABLE sp_tenant_configuration ( CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant); CREATE TABLE sp_distribution_set ( - id BIGINT DEFAULT nextval('sp_distribution_set_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -204,13 +135,13 @@ CREATE TABLE sp_distribution_set ( PRIMARY KEY (id) ); CREATE UNIQUE INDEX uk_distribution_set ON sp_distribution_set (tenant, name, version, ds_type); -CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set USING btree (tenant, deleted); -CREATE INDEX sp_idx_distribution_set_prim_sp_distribution_set ON sp_distribution_set USING btree (tenant, id); +CREATE INDEX sp_idx_distribution_set_prim ON sp_distribution_set (tenant, id); +CREATE INDEX sp_idx_distribution_set_01 ON sp_distribution_set (tenant, deleted); ALTER TABLE sp_distribution_set - ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; + ADD CONSTRAINT fk_distribution_set_ds_type FOREIGN KEY (ds_type) REFERENCES sp_distribution_set_type (id); CREATE TABLE sp_tenant ( - id BIGINT DEFAULT nextval('sp_tenant_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -221,9 +152,9 @@ CREATE TABLE sp_tenant ( PRIMARY KEY (id) ); CREATE UNIQUE INDEX uk_tenant ON sp_tenant (tenant); -CREATE INDEX sp_idx_tenant_prim_sp_tenant ON sp_tenant USING btree (tenant, id); +CREATE INDEX sp_idx_tenant_prim ON sp_tenant (tenant, id); ALTER TABLE sp_tenant - ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; + ADD CONSTRAINT fk_sp_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (id); CREATE TABLE sp_ds_type_element ( mandatory BOOLEAN, @@ -232,12 +163,12 @@ CREATE TABLE sp_ds_type_element ( PRIMARY KEY (distribution_set_type, software_module_type) ); ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_type_element_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; ALTER TABLE sp_ds_type_element - ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_type_element_software_module_type FOREIGN KEY (software_module_type) REFERENCES sp_software_module_type (id) ON DELETE CASCADE; CREATE TABLE sp_software_module ( - id BIGINT DEFAULT nextval('sp_base_software_module_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -255,11 +186,11 @@ CREATE TABLE sp_software_module ( PRIMARY KEY (id) ); CREATE UNIQUE INDEX uk_software_module ON sp_software_module (sm_type, name, version, tenant); -CREATE INDEX sp_idx_software_module_01 ON sp_software_module USING btree (tenant, deleted, name, version); -CREATE INDEX sp_idx_software_module_02 ON sp_software_module USING btree (tenant, deleted, sm_type); -CREATE INDEX sp_idx_software_module_prim ON sp_software_module USING btree (tenant, id); +CREATE INDEX sp_idx_software_module_01 ON sp_software_module (tenant, deleted, name, version); +CREATE INDEX sp_idx_software_module_02 ON sp_software_module (tenant, deleted, sm_type); +CREATE INDEX sp_idx_software_module_prim ON sp_software_module (tenant, id); ALTER TABLE sp_software_module - ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type(id) ON UPDATE RESTRICT ON DELETE RESTRICT; + ADD CONSTRAINT fk_software_module_sm_type FOREIGN KEY (sm_type) REFERENCES sp_software_module_type (id); CREATE TABLE sp_target_type_ds_type ( target_type BIGINT NOT NULL, @@ -267,9 +198,9 @@ CREATE TABLE sp_target_type_ds_type ( PRIMARY KEY (target_type, distribution_set_type) ); ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_target_type_ds_type_distribution_set_type FOREIGN KEY (distribution_set_type) REFERENCES sp_distribution_set_type (id) ON DELETE CASCADE; ALTER TABLE sp_target_type_ds_type - ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_target_type_ds_type_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE CASCADE; CREATE TABLE sp_ds_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -278,7 +209,7 @@ CREATE TABLE sp_ds_metadata ( PRIMARY KEY (ds, meta_key) ); ALTER TABLE sp_ds_metadata - ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_metadata_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; CREATE TABLE sp_ds_tag ( ds BIGINT NOT NULL, @@ -286,12 +217,12 @@ CREATE TABLE sp_ds_tag ( PRIMARY KEY (ds, tag) ); ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_tag_ds FOREIGN KEY (ds) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_tag - ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_tag_tag FOREIGN KEY (tag) REFERENCES sp_distribution_set_tag (id) ON DELETE CASCADE; CREATE TABLE sp_rollout ( - id BIGINT DEFAULT nextval('sp_rollout_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -318,13 +249,13 @@ CREATE TABLE sp_rollout ( is_dynamic BOOLEAN, PRIMARY KEY (id) ); -CREATE UNIQUE INDEX uk_rollout_sp_rollout ON sp_rollout (name, tenant); -CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout USING btree (tenant, status); +CREATE UNIQUE INDEX uk_rollout ON sp_rollout (name, tenant); +CREATE INDEX sp_idx_rollout_status_tenant ON sp_rollout (tenant, status); ALTER TABLE sp_rollout - ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; + ADD CONSTRAINT fk_rollout_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); CREATE TABLE sp_target ( - id BIGINT DEFAULT nextval('sp_target_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -346,22 +277,22 @@ CREATE TABLE sp_target ( target_group VARCHAR(256), PRIMARY KEY (id) ); -CREATE UNIQUE INDEX uk_target ON sp_target (controller_id, tenant); -CREATE INDEX sp_idx_target_01_sp_target ON sp_target USING btree (tenant, name, assigned_distribution_set); -CREATE INDEX sp_idx_target_03_sp_target ON sp_target USING btree (tenant, controller_id, assigned_distribution_set); -CREATE INDEX sp_idx_target_04_sp_target ON sp_target USING btree (tenant, created_at); -CREATE INDEX sp_idx_target_05 ON sp_target USING btree (tenant, last_modified_at); -CREATE INDEX sp_idx_target_group ON sp_target USING btree (tenant, target_group); -CREATE INDEX sp_idx_target_prim_sp_target ON sp_target USING btree (tenant, id); +CREATE UNIQUE INDEX uk_target_controller_id ON sp_target (controller_id, tenant); +CREATE INDEX sp_idx_target_01 ON sp_target (tenant, name, assigned_distribution_set); +CREATE INDEX sp_idx_target_03 ON sp_target (tenant, controller_id, assigned_distribution_set); +CREATE INDEX sp_idx_target_04 ON sp_target (tenant, created_at); +CREATE INDEX sp_idx_target_prim ON sp_target (tenant, id); +CREATE INDEX sp_idx_target_05 ON sp_target (tenant, last_modified_at); +CREATE INDEX sp_idx_target_group ON sp_target (tenant, target_group); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; + ADD CONSTRAINT fk_target_assign_ds FOREIGN KEY (assigned_distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; + ADD CONSTRAINT fk_target_inst_ds FOREIGN KEY (installed_distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_target - ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type(id) ON UPDATE RESTRICT ON DELETE SET NULL; + ADD CONSTRAINT fk_target_relation_target_type FOREIGN KEY (target_type) REFERENCES sp_target_type (id) ON DELETE SET NULL; CREATE TABLE sp_target_filter_query ( - id BIGINT DEFAULT nextval('sp_target_filter_query_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -380,10 +311,10 @@ CREATE TABLE sp_target_filter_query ( ); CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant); ALTER TABLE sp_target_filter_query - ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE SET NULL; + ADD CONSTRAINT fk_target_filter_query_auto_assign_distribution_set FOREIGN KEY (auto_assign_distribution_set) REFERENCES sp_distribution_set (id) ON DELETE SET NULL; CREATE TABLE sp_artifact ( - id BIGINT DEFAULT nextval('sp_artifact_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -398,11 +329,11 @@ CREATE TABLE sp_artifact ( sha256_hash CHAR(64), PRIMARY KEY (id) ); -CREATE INDEX sp_idx_artifact_prim_sp_artifact ON sp_artifact USING btree (tenant, id); -CREATE INDEX sp_idx_artifact_01_sp_artifact ON sp_artifact USING btree (tenant, software_module); -CREATE INDEX sp_idx_artifact_02_sp_artifact ON sp_artifact USING btree (tenant, sha1_hash); +CREATE INDEX sp_idx_artifact_prim ON sp_artifact (tenant, id); +CREATE INDEX sp_idx_artifact_01 ON sp_artifact (tenant, software_module); +CREATE INDEX sp_idx_artifact_02 ON sp_artifact (tenant, sha1_hash); ALTER TABLE sp_artifact - ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_artifact_software_module FOREIGN KEY (software_module) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_ds_sm ( ds_id BIGINT NOT NULL, @@ -410,9 +341,9 @@ CREATE TABLE sp_ds_sm ( PRIMARY KEY (ds_id, sm_id) ); ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_sm_ds_id FOREIGN KEY (ds_id) REFERENCES sp_distribution_set (id) ON DELETE CASCADE; ALTER TABLE sp_ds_sm - ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_ds_sm_sm_id FOREIGN KEY (sm_id) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_sm_metadata ( meta_key VARCHAR(128) NOT NULL, @@ -422,10 +353,10 @@ CREATE TABLE sp_sm_metadata ( PRIMARY KEY (meta_key, sm) ); ALTER TABLE sp_sm_metadata - ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_sm_metadata_sm FOREIGN KEY (sm) REFERENCES sp_software_module (id) ON DELETE CASCADE; CREATE TABLE sp_rollout_group ( - id BIGINT DEFAULT nextval('sp_rolloutgroup_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -454,7 +385,7 @@ CREATE TABLE sp_rollout_group ( ); CREATE UNIQUE INDEX uk_rollout_group ON sp_rollout_group (name, rollout, tenant); ALTER TABLE sp_rollout_group - ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE; CREATE TABLE sp_target_attributes ( target BIGINT NOT NULL, @@ -462,9 +393,9 @@ CREATE TABLE sp_target_attributes ( attribute_key VARCHAR(128) NOT NULL, PRIMARY KEY (target, attribute_key) ); -CREATE INDEX sp_idx_target_attributes_target_id ON sp_target_attributes USING btree (target); +CREATE INDEX sp_idx_target_attributes_target_id ON sp_target_attributes (target); ALTER TABLE sp_target_attributes - ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_target_attributes_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_conf_status ( id BIGINT GENERATED BY DEFAULT AS IDENTITY, @@ -489,7 +420,7 @@ CREATE TABLE sp_target_metadata ( PRIMARY KEY (target, meta_key) ); ALTER TABLE sp_target_metadata - ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_target_metadata_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_target_target_tag ( target BIGINT NOT NULL, @@ -497,12 +428,12 @@ CREATE TABLE sp_target_target_tag ( PRIMARY KEY (target, tag) ); ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_target_target_tag - ADD CONSTRAINT fk_target_target_tag_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_target_target_tag_tag FOREIGN KEY (tag) REFERENCES sp_target_tag (id) ON DELETE CASCADE; CREATE TABLE sp_action ( - id BIGINT DEFAULT nextval('sp_action_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -526,33 +457,33 @@ CREATE TABLE sp_action ( last_action_status_code INTEGER, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_action_prim_sp_action ON sp_action USING btree (tenant, id); -CREATE INDEX sp_idx_action_01_sp_action ON sp_action USING btree (tenant, distribution_set); -CREATE INDEX sp_idx_action_02_sp_action ON sp_action USING btree (tenant, target, active); -CREATE INDEX sp_idx_action_external_ref_sp_action ON sp_action USING btree (external_ref); -CREATE INDEX sp_idx_action_target ON sp_action USING btree (target); +CREATE INDEX sp_idx_action_prim ON sp_action (tenant, id); +CREATE INDEX sp_idx_action_01 ON sp_action (tenant, distribution_set); +CREATE INDEX sp_idx_action_02 ON sp_action (tenant, target, active); +CREATE INDEX sp_idx_action_external_ref ON sp_action (external_ref); +CREATE INDEX sp_idx_action_target ON sp_action (target); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; + ADD CONSTRAINT fk_action_distribution_set FOREIGN KEY (distribution_set) REFERENCES sp_distribution_set (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; + ADD CONSTRAINT fk_action_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id); ALTER TABLE sp_action - ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_action_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; ALTER TABLE sp_action - ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout(id) ON UPDATE RESTRICT ON DELETE RESTRICT;; + ADD CONSTRAINT fk_action_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id); CREATE TABLE sp_rollout_target_group ( target BIGINT NOT NULL, rollout_group BIGINT NOT NULL, PRIMARY KEY (rollout_group, target) ); -CREATE INDEX sp_idx_rollout_target_group_target ON sp_rollout_target_group USING btree (target); +CREATE INDEX sp_idx_rollout_target_group_target ON sp_rollout_target_group (target); ALTER TABLE sp_rollout_target_group - ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_rollout_target_group_rollout_group FOREIGN KEY (rollout_group) REFERENCES sp_rollout_group (id) ON DELETE CASCADE; ALTER TABLE sp_rollout_target_group - ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_rollout_target_group_target FOREIGN KEY (target) REFERENCES sp_target (id) ON DELETE CASCADE; CREATE TABLE sp_action_status ( - id BIGINT DEFAULT nextval('sp_action_status_seq') NOT NULL, + id BIGINT GENERATED BY DEFAULT AS IDENTITY, created_at BIGINT, created_by VARCHAR(64), last_modified_at BIGINT, @@ -565,16 +496,16 @@ CREATE TABLE sp_action_status ( code INTEGER, PRIMARY KEY (id) ); -CREATE INDEX sp_idx_action_status_prim_sp_action_status ON sp_action_status USING btree (tenant, id); -CREATE INDEX sp_idx_action_status_02_sp_action_status ON sp_action_status USING btree (tenant, action, status); -CREATE INDEX sp_idx_action_status_03 ON sp_action_status USING btree (tenant, code); +CREATE INDEX sp_idx_action_status_prim ON sp_action_status (tenant, id); +CREATE INDEX sp_idx_action_status_02 ON sp_action_status (tenant, action, status); +CREATE INDEX sp_idx_action_status_03 ON sp_action_status (tenant, code); ALTER TABLE sp_action_status - ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action(id) ON UPDATE RESTRICT ON DELETE CASCADE; + ADD CONSTRAINT fk_action_status_action FOREIGN KEY (action) REFERENCES sp_action (id) ON DELETE CASCADE; CREATE TABLE sp_action_status_messages ( action_status BIGINT NOT NULL, detail_message VARCHAR(512) NOT NULL ); -CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages USING btree (action_status); +CREATE INDEX fk_action_status_messages_action_status ON sp_action_status_messages (action_status); ALTER TABLE sp_action_status_messages - ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status(id) ON UPDATE RESTRICT ON DELETE CASCADE; \ No newline at end of file + ADD CONSTRAINT fk_action_status_messages_action_status FOREIGN KEY (action_status) REFERENCES sp_action_status (id) ON DELETE CASCADE; \ No newline at end of file