Add baselines for hawkbit 1.0 (#2902)
* Add baselines for hawkbit 1.0 Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com> * Add SQL format, close to the already used * Organize and unify * Refactor B1_POSTGRES index names * Revert ignoreMigrationPattern - will be included in separate PR --------- Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com> Co-authored-by: vasilchev <vasil.ilchev@bosch.com>
This commit is contained in:
@@ -0,0 +1,507 @@
|
||||
-- hawkbit 1.0.0 H2 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 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 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_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 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_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 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_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 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 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) 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 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 UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant);
|
||||
|
||||
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 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);
|
||||
|
||||
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_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (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)
|
||||
);
|
||||
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;
|
||||
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;
|
||||
|
||||
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 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);
|
||||
|
||||
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;
|
||||
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;
|
||||
|
||||
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;
|
||||
|
||||
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;
|
||||
ALTER TABLE sp_ds_tag
|
||||
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,
|
||||
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,
|
||||
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 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);
|
||||
|
||||
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 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_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 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;
|
||||
|
||||
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_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;
|
||||
|
||||
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 DELETE CASCADE;
|
||||
ALTER TABLE sp_ds_sm
|
||||
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,
|
||||
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 DELETE CASCADE;
|
||||
|
||||
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 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;
|
||||
|
||||
CREATE TABLE sp_target_attributes (
|
||||
target BIGINT NOT NULL,
|
||||
attribute_value VARCHAR(128),
|
||||
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;
|
||||
|
||||
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)
|
||||
);
|
||||
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,
|
||||
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;
|
||||
|
||||
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;
|
||||
ALTER TABLE sp_target_target_tag
|
||||
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,
|
||||
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_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);
|
||||
ALTER TABLE sp_action
|
||||
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;
|
||||
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_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;
|
||||
|
||||
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;
|
||||
|
||||
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;
|
||||
@@ -0,0 +1,507 @@
|
||||
-- hawkbit 1.0.0 MySQL 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 DATETIME(6) NOT NULL,
|
||||
PRIMARY KEY (LOCK_KEY, REGION)
|
||||
);
|
||||
|
||||
CREATE TABLE sp_distribution_set_tag (
|
||||
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),
|
||||
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_distribution_set_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,
|
||||
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_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_target_tag (
|
||||
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),
|
||||
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,
|
||||
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 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);
|
||||
|
||||
CREATE TABLE sp_tenant (
|
||||
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,
|
||||
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_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (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)
|
||||
);
|
||||
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;
|
||||
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;
|
||||
|
||||
CREATE TABLE sp_software_module (
|
||||
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,
|
||||
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);
|
||||
|
||||
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;
|
||||
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;
|
||||
|
||||
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;
|
||||
|
||||
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;
|
||||
ALTER TABLE sp_ds_tag
|
||||
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,
|
||||
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,
|
||||
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 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);
|
||||
|
||||
CREATE TABLE sp_target (
|
||||
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,
|
||||
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_target_filter_query (
|
||||
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,
|
||||
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;
|
||||
|
||||
CREATE TABLE sp_artifact (
|
||||
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,
|
||||
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;
|
||||
|
||||
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 DELETE CASCADE;
|
||||
ALTER TABLE sp_ds_sm
|
||||
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,
|
||||
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 DELETE CASCADE;
|
||||
|
||||
CREATE TABLE sp_rollout_group (
|
||||
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,
|
||||
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_rollout_group_rollout FOREIGN KEY (rollout) REFERENCES sp_rollout (id) ON DELETE CASCADE;
|
||||
|
||||
CREATE TABLE sp_target_attributes (
|
||||
target BIGINT NOT NULL,
|
||||
attribute_value VARCHAR(128),
|
||||
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;
|
||||
|
||||
CREATE TABLE sp_target_conf_status (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT,
|
||||
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)
|
||||
);
|
||||
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,
|
||||
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;
|
||||
|
||||
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;
|
||||
ALTER TABLE sp_target_target_tag
|
||||
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,
|
||||
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_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);
|
||||
ALTER TABLE sp_action
|
||||
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;
|
||||
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_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;
|
||||
|
||||
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_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 (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;
|
||||
@@ -0,0 +1,510 @@
|
||||
-- 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 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 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_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 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_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 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_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 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 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) 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 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 UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant);
|
||||
|
||||
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 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);
|
||||
|
||||
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_tenant_default_ds_type FOREIGN KEY (default_ds_type) REFERENCES sp_distribution_set_type (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)
|
||||
);
|
||||
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;
|
||||
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;
|
||||
|
||||
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 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);
|
||||
|
||||
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;
|
||||
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;
|
||||
|
||||
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;
|
||||
|
||||
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;
|
||||
ALTER TABLE sp_ds_tag
|
||||
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,
|
||||
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,
|
||||
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 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);
|
||||
|
||||
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 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_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 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;
|
||||
|
||||
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_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;
|
||||
|
||||
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 DELETE CASCADE;
|
||||
ALTER TABLE sp_ds_sm
|
||||
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,
|
||||
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 DELETE CASCADE;
|
||||
|
||||
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 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;
|
||||
|
||||
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 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 DELETE CASCADE;
|
||||
|
||||
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)
|
||||
);
|
||||
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,
|
||||
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;
|
||||
|
||||
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;
|
||||
ALTER TABLE sp_target_target_tag
|
||||
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,
|
||||
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_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);
|
||||
ALTER TABLE sp_action
|
||||
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;
|
||||
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)
|
||||
);
|
||||
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 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;
|
||||
|
||||
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;
|
||||
|
||||
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;
|
||||
Reference in New Issue
Block a user