Files
junhong_cmp_fiber/migrations/000166_create_system_config.up.sql
2026-07-24 16:07:18 +08:00

34 lines
1.9 KiB
SQL

-- 创建受控系统配置表;具体业务 Key 由所属业务模块注册,不在公共迁移中预置。
CREATE TABLE tb_system_config (
id bigserial PRIMARY KEY,
config_key varchar(150) NOT NULL,
config_value text NOT NULL,
value_type varchar(20) NOT NULL,
module varchar(100) NOT NULL,
description varchar(500) NOT NULL,
is_readonly boolean NOT NULL DEFAULT false,
is_sensitive boolean NOT NULL DEFAULT false,
creator bigint NOT NULL DEFAULT 0,
updater bigint NOT NULL DEFAULT 0,
created_at timestamptz NOT NULL DEFAULT NOW(),
updated_at timestamptz NOT NULL DEFAULT NOW(),
CONSTRAINT uq_system_config_key UNIQUE (config_key),
CONSTRAINT ck_system_config_value_type CHECK (value_type IN ('string', 'int', 'bool', 'json'))
);
CREATE INDEX idx_system_config_module_key ON tb_system_config (module, config_key);
COMMENT ON TABLE tb_system_config IS '受控系统配置表';
COMMENT ON COLUMN tb_system_config.id IS '系统配置主键ID';
COMMENT ON COLUMN tb_system_config.config_key IS '全局唯一的稳定配置Key';
COMMENT ON COLUMN tb_system_config.config_value IS '按值类型保存的配置值';
COMMENT ON COLUMN tb_system_config.value_type IS '值类型 string/int/bool/json';
COMMENT ON COLUMN tb_system_config.module IS '配置所属业务模块';
COMMENT ON COLUMN tb_system_config.description IS '配置用途中文说明';
COMMENT ON COLUMN tb_system_config.is_readonly IS '是否禁止通过在线接口修改';
COMMENT ON COLUMN tb_system_config.is_sensitive IS '是否为响应、日志和审计需要脱敏的配置';
COMMENT ON COLUMN tb_system_config.creator IS '首次创建配置的账号ID';
COMMENT ON COLUMN tb_system_config.updater IS '最近更新配置的账号ID';
COMMENT ON COLUMN tb_system_config.created_at IS '系统配置创建时间';
COMMENT ON COLUMN tb_system_config.updated_at IS '系统配置更新时间';