feat(ft546): add WCS adapter configuration profiles
This commit is contained in:
127
sql/wcs/V004__ft546_project_adapter_config.sql
Normal file
127
sql/wcs/V004__ft546_project_adapter_config.sql
Normal file
@@ -0,0 +1,127 @@
|
||||
SET XACT_ABORT ON;
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
IF OBJECT_ID('dbo.project_device_endpoint', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.project_device_endpoint (
|
||||
device_id varchar(64) NOT NULL PRIMARY KEY,
|
||||
device_type varchar(32) NOT NULL,
|
||||
adapter_type varchar(64) NOT NULL,
|
||||
endpoint_ip varchar(128) NOT NULL,
|
||||
endpoint_port int NOT NULL,
|
||||
protocol_station int NULL,
|
||||
enabled_flag bit NOT NULL
|
||||
CONSTRAINT df_project_device_endpoint_enabled DEFAULT (0),
|
||||
state_version bigint NOT NULL,
|
||||
updated_time datetime2(3) NOT NULL,
|
||||
CONSTRAINT ck_project_device_endpoint_port CHECK (
|
||||
endpoint_port > 0 AND endpoint_port <= 65535),
|
||||
CONSTRAINT ck_project_device_endpoint_station CHECK (
|
||||
protocol_station IS NULL OR protocol_station >= 0),
|
||||
CONSTRAINT ck_project_device_endpoint_version CHECK (state_version >= 0)
|
||||
);
|
||||
END;
|
||||
|
||||
IF OBJECT_ID('dbo.project_protocol_profile', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.project_protocol_profile (
|
||||
device_id varchar(64) NOT NULL,
|
||||
profile_version bigint NOT NULL,
|
||||
device_type varchar(32) NOT NULL,
|
||||
adapter_type varchar(64) NOT NULL,
|
||||
corpus_manifest_hash varchar(128) NOT NULL,
|
||||
profile_json nvarchar(max) NOT NULL,
|
||||
active_flag bit NOT NULL
|
||||
CONSTRAINT df_project_protocol_profile_active DEFAULT (0),
|
||||
created_time datetime2(3) NOT NULL,
|
||||
activated_time datetime2(3) NULL,
|
||||
CONSTRAINT pk_project_protocol_profile PRIMARY KEY (
|
||||
device_id, profile_version),
|
||||
CONSTRAINT fk_project_protocol_profile_endpoint FOREIGN KEY (device_id)
|
||||
REFERENCES dbo.project_device_endpoint(device_id),
|
||||
CONSTRAINT ck_project_protocol_profile_version CHECK (
|
||||
profile_version > 0)
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM sys.indexes
|
||||
WHERE object_id = OBJECT_ID('dbo.project_protocol_profile')
|
||||
AND name = 'uk_project_protocol_profile_active')
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX uk_project_protocol_profile_active
|
||||
ON dbo.project_protocol_profile(device_id)
|
||||
WHERE active_flag = 1;
|
||||
END;
|
||||
|
||||
IF OBJECT_ID('dbo.project_plc_address', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.project_plc_address (
|
||||
device_id varchar(64) NOT NULL,
|
||||
profile_version bigint NOT NULL,
|
||||
register_name varchar(64) NOT NULL,
|
||||
plc_address varchar(64) NOT NULL,
|
||||
value_type varchar(32) NOT NULL,
|
||||
semantic_code varchar(128) NOT NULL,
|
||||
write_order int NULL,
|
||||
CONSTRAINT pk_project_plc_address PRIMARY KEY (
|
||||
device_id, profile_version, register_name),
|
||||
CONSTRAINT fk_project_plc_address_profile FOREIGN KEY (
|
||||
device_id, profile_version)
|
||||
REFERENCES dbo.project_protocol_profile(
|
||||
device_id, profile_version),
|
||||
CONSTRAINT uk_project_plc_address_owner UNIQUE (
|
||||
device_id, profile_version, plc_address),
|
||||
CONSTRAINT ck_project_plc_address_order CHECK (
|
||||
write_order IS NULL OR write_order > 0)
|
||||
);
|
||||
END;
|
||||
|
||||
IF OBJECT_ID('dbo.project_protocol_capability_evidence', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.project_protocol_capability_evidence (
|
||||
evidence_id varchar(128) NOT NULL PRIMARY KEY,
|
||||
device_id varchar(64) NOT NULL,
|
||||
profile_version bigint NOT NULL,
|
||||
capability_code varchar(64) NOT NULL,
|
||||
corpus_manifest_hash varchar(128) NOT NULL,
|
||||
passing_test_run_id varchar(128) NOT NULL,
|
||||
git_commit varchar(128) NOT NULL,
|
||||
regression_passed_flag bit NOT NULL,
|
||||
approved_by varchar(128) NOT NULL,
|
||||
approved_time datetime2(3) NOT NULL,
|
||||
expires_time datetime2(3) NOT NULL,
|
||||
created_time datetime2(3) NOT NULL,
|
||||
CONSTRAINT fk_project_capability_evidence_profile FOREIGN KEY (
|
||||
device_id, profile_version)
|
||||
REFERENCES dbo.project_protocol_profile(
|
||||
device_id, profile_version),
|
||||
CONSTRAINT uk_project_capability_evidence_binding UNIQUE (
|
||||
device_id, profile_version, capability_code,
|
||||
corpus_manifest_hash, passing_test_run_id),
|
||||
CONSTRAINT ck_project_capability_evidence_expiry CHECK (
|
||||
expires_time > approved_time)
|
||||
);
|
||||
END;
|
||||
|
||||
IF OBJECT_ID('dbo.project_wms_mapping', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.project_wms_mapping (
|
||||
mapping_id varchar(128) NOT NULL PRIMARY KEY,
|
||||
external_operation varchar(64) NOT NULL,
|
||||
external_order_type varchar(64) NULL,
|
||||
canonical_order_type varchar(32) NOT NULL,
|
||||
source_field varchar(128) NOT NULL,
|
||||
destination_field varchar(128) NOT NULL,
|
||||
callback_url_config_key varchar(128) NULL,
|
||||
active_flag bit NOT NULL
|
||||
CONSTRAINT df_project_wms_mapping_active DEFAULT (0),
|
||||
state_version bigint NOT NULL,
|
||||
updated_time datetime2(3) NOT NULL,
|
||||
CONSTRAINT uk_project_wms_mapping_operation UNIQUE (
|
||||
external_operation, external_order_type),
|
||||
CONSTRAINT ck_project_wms_mapping_version CHECK (state_version >= 0)
|
||||
);
|
||||
END;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
Reference in New Issue
Block a user