mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-27 09:55:36 +00:00
46 lines
2.2 KiB
SQL
46 lines
2.2 KiB
SQL
-- Add "Data Product Domain Validation" rule to existing entityRulesSettings configuration
|
|
UPDATE openmetadata_settings
|
|
SET json = JSON_ARRAY_APPEND(
|
|
json,
|
|
'$.entitySemantics',
|
|
JSON_OBJECT(
|
|
'name', 'Data Product Domain Validation',
|
|
'description', 'Validates that Data Products assigned to an entity match the entity''s domains.',
|
|
'rule', '{"validateDataProductDomainMatch":[{"var":"dataProducts"},{"var":"domains"}]}',
|
|
'enabled', true,
|
|
'provider', 'system'
|
|
)
|
|
)
|
|
WHERE configType = 'entityRulesSettings'
|
|
AND JSON_EXTRACT(json, '$.entitySemantics') IS NOT NULL
|
|
AND NOT JSON_CONTAINS(
|
|
JSON_EXTRACT(json, '$.entitySemantics[*].name'),
|
|
JSON_QUOTE('Data Product Domain Validation')
|
|
);
|
|
|
|
-- Add virtual column for customUnitOfMeasurement
|
|
ALTER TABLE metric_entity
|
|
ADD COLUMN customUnitOfMeasurement VARCHAR(256)
|
|
GENERATED ALWAYS AS (json_unquote(json_extract(json, '$.customUnitOfMeasurement'))) VIRTUAL;
|
|
-- Add index on the virtual column
|
|
CREATE INDEX idx_metric_custom_unit ON metric_entity(customUnitOfMeasurement);
|
|
|
|
-- Fetch updated searchSettings
|
|
DELETE FROM openmetadata_settings WHERE configType = 'searchSettings';
|
|
|
|
-- Create notification_template_entity table following OpenMetadata patterns
|
|
CREATE TABLE IF NOT EXISTS notification_template_entity (
|
|
id VARCHAR(36) GENERATED ALWAYS AS (json_unquote(json_extract(json, '$.id'))) STORED NOT NULL,
|
|
name VARCHAR(256) GENERATED ALWAYS AS (json_unquote(json_extract(json, '$.name'))) VIRTUAL NOT NULL,
|
|
fqnHash VARCHAR(768) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
|
|
json JSON NOT NULL,
|
|
updatedAt BIGINT UNSIGNED GENERATED ALWAYS AS (json_unquote(json_extract(json, '$.updatedAt'))) VIRTUAL NOT NULL,
|
|
updatedBy VARCHAR(256) GENERATED ALWAYS AS (json_unquote(json_extract(json, '$.updatedBy'))) VIRTUAL NOT NULL,
|
|
deleted TINYINT(1) GENERATED ALWAYS AS (json_extract(json, '$.deleted')) VIRTUAL,
|
|
provider VARCHAR(32) GENERATED ALWAYS AS (json_unquote(json_extract(json, '$.provider'))) VIRTUAL,
|
|
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY fqnHash (fqnHash),
|
|
INDEX idx_notification_template_name (name),
|
|
INDEX idx_notification_template_provider (provider)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; |