muse-agent-example/db/ddl/V3__init_meta_schema.sql

134 lines
5.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Muse Meta 模块初始 SchemaPostgreSQL 16
-- 影响范围MetaSchema、字段、可见性策略、保护节点、功能链路。
CREATE TABLE muse_meta_schema (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
schema_key VARCHAR(100) NOT NULL,
domain VARCHAR(20) NOT NULL,
scope VARCHAR(20) NOT NULL,
target_type VARCHAR(50),
display_name VARCHAR(200) NOT NULL,
active_version_id BIGINT,
effective_scope JSONB,
projection_version INT NOT NULL DEFAULT 1,
status VARCHAR(20) NOT NULL DEFAULT 'active',
creator VARCHAR(64) NOT NULL DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL DEFAULT '',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted BOOLEAN NOT NULL DEFAULT FALSE,
tenant_id BIGINT NOT NULL DEFAULT 0,
CONSTRAINT uk_muse_meta_schema_key UNIQUE (tenant_id, domain, scope, target_type, schema_key)
);
CREATE TRIGGER trg_muse_meta_schema_updated_at BEFORE UPDATE ON muse_meta_schema FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
CREATE TABLE muse_meta_schema_version (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
schema_id BIGINT NOT NULL,
schema_key VARCHAR(100) NOT NULL,
version_no INT NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'draft',
active_flag BOOLEAN NOT NULL DEFAULT FALSE,
effective_scope JSONB,
field_contract_snapshot JSONB,
impact_preview_snapshot JSONB,
rollback_from_version_id BIGINT,
rollback_to_version_id BIGINT,
published_by VARCHAR(64),
published_at TIMESTAMP,
activated_by VARCHAR(64),
activated_at TIMESTAMP,
change_note VARCHAR(500),
command_id VARCHAR(120),
creator VARCHAR(64) NOT NULL DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL DEFAULT '',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted BOOLEAN NOT NULL DEFAULT FALSE,
tenant_id BIGINT NOT NULL DEFAULT 0,
CONSTRAINT uk_muse_meta_schema_version_key UNIQUE (tenant_id, schema_key, version_no)
);
CREATE INDEX idx_muse_meta_schema_ver_sid ON muse_meta_schema_version(tenant_id, schema_id);
CREATE UNIQUE INDEX uk_muse_meta_schema_ver_command ON muse_meta_schema_version(tenant_id, command_id) WHERE command_id IS NOT NULL;
CREATE TRIGGER trg_muse_meta_schema_version_updated_at BEFORE UPDATE ON muse_meta_schema_version FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
CREATE TABLE muse_meta_field (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
schema_version_id BIGINT NOT NULL,
field_key VARCHAR(100) NOT NULL,
display_name VARCHAR(200) NOT NULL,
field_type VARCHAR(20) NOT NULL,
is_required BOOLEAN NOT NULL DEFAULT FALSE,
default_value JSONB,
enum_values JSONB,
validation_rules JSONB,
sort_order INT NOT NULL DEFAULT 0,
creator VARCHAR(64) NOT NULL DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL DEFAULT '',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted BOOLEAN NOT NULL DEFAULT FALSE,
tenant_id BIGINT NOT NULL DEFAULT 0
);
CREATE INDEX idx_muse_meta_field_ver ON muse_meta_field(tenant_id, schema_version_id);
CREATE TRIGGER trg_muse_meta_field_updated_at BEFORE UPDATE ON muse_meta_field FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
CREATE TABLE muse_meta_visibility_policy (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
schema_version_id BIGINT NOT NULL,
ui_visible BOOLEAN NOT NULL DEFAULT TRUE,
ai_context BOOLEAN NOT NULL DEFAULT FALSE,
user_editable BOOLEAN NOT NULL DEFAULT TRUE,
user_searchable BOOLEAN NOT NULL DEFAULT FALSE,
exportable BOOLEAN NOT NULL DEFAULT FALSE,
policy_snapshot JSONB,
creator VARCHAR(64) NOT NULL DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL DEFAULT '',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted BOOLEAN NOT NULL DEFAULT FALSE,
tenant_id BIGINT NOT NULL DEFAULT 0
);
CREATE INDEX idx_muse_meta_vis_policy_ver ON muse_meta_visibility_policy(tenant_id, schema_version_id);
CREATE TRIGGER trg_muse_meta_vis_policy_updated_at BEFORE UPDATE ON muse_meta_visibility_policy FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
CREATE TABLE muse_meta_protection_node (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
node_key VARCHAR(100) NOT NULL,
display_name VARCHAR(200) NOT NULL,
owner_module VARCHAR(50) NOT NULL,
replaceable BOOLEAN NOT NULL DEFAULT FALSE,
policy_snapshot JSONB,
status VARCHAR(20) NOT NULL DEFAULT 'active',
creator VARCHAR(64) NOT NULL DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL DEFAULT '',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted BOOLEAN NOT NULL DEFAULT FALSE,
tenant_id BIGINT NOT NULL DEFAULT 0,
CONSTRAINT uk_muse_meta_protection_node UNIQUE (tenant_id, node_key)
);
CREATE TRIGGER trg_muse_meta_protection_node_updated_at BEFORE UPDATE ON muse_meta_protection_node FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
CREATE TABLE muse_meta_function_chain (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
chain_key VARCHAR(100) NOT NULL,
active_version VARCHAR(50),
chain_snapshot JSONB,
status VARCHAR(20) NOT NULL DEFAULT 'active',
creator VARCHAR(64) NOT NULL DEFAULT '',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updater VARCHAR(64) NOT NULL DEFAULT '',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted BOOLEAN NOT NULL DEFAULT FALSE,
tenant_id BIGINT NOT NULL DEFAULT 0,
CONSTRAINT uk_muse_meta_function_chain UNIQUE (tenant_id, chain_key)
);
CREATE TRIGGER trg_muse_meta_function_chain_updated_at BEFORE UPDATE ON muse_meta_function_chain FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();