sol-cloud/docker/config/postgres/initdb/nacos.sql
2025-04-11 17:45:07 +08:00

245 lines
9.4 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.

CREATE DATABASE nacos;
\c nacos;
CREATE TABLE config_info (
id SERIAL PRIMARY KEY,
data_id varchar(255) NOT NULL,
group_id varchar(128) DEFAULT NULL,
content text NOT NULL,
md5 varchar(32) DEFAULT NULL,
gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
gmt_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
src_user text,
src_ip varchar(50) DEFAULT NULL,
app_name varchar(128) DEFAULT NULL,
tenant_id varchar(128) DEFAULT '',
c_desc varchar(256) DEFAULT NULL,
c_use varchar(64) DEFAULT NULL,
effect varchar(64) DEFAULT NULL,
type varchar(64) DEFAULT NULL,
c_schema text,
encrypted_data_key varchar(1024) DEFAULT ''
);
COMMENT ON TABLE config_info IS 'config_info';
COMMENT ON COLUMN config_info.id IS 'id';
COMMENT ON COLUMN config_info.data_id IS 'data_id';
COMMENT ON COLUMN config_info.content IS 'content';
COMMENT ON COLUMN config_info.md5 IS 'md5';
COMMENT ON COLUMN config_info.gmt_create IS '创建时间';
COMMENT ON COLUMN config_info.gmt_modified IS '修改时间';
COMMENT ON COLUMN config_info.src_user IS 'source user';
COMMENT ON COLUMN config_info.src_ip IS 'source ip';
COMMENT ON COLUMN config_info.tenant_id IS '租户字段';
COMMENT ON COLUMN config_info.encrypted_data_key IS '密钥';
CREATE UNIQUE INDEX IF NOT EXISTS uk_configinfo_datagrouptenant ON config_info (data_id, group_id, tenant_id);
CREATE TABLE config_info_gray (
id SERIAL PRIMARY KEY,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
content text NOT NULL,
md5 varchar(32) DEFAULT NULL,
src_user text,
src_ip varchar(100) DEFAULT NULL,
gmt_create timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
gmt_modified timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
app_name varchar(128) DEFAULT NULL,
tenant_id varchar(128) DEFAULT '',
gray_name varchar(128) NOT NULL,
gray_rule text NOT NULL,
encrypted_data_key varchar(256) DEFAULT ''
);
COMMENT ON TABLE config_info_gray IS 'config_info_gray';
CREATE UNIQUE INDEX IF NOT EXISTS uk_configinfogray_datagrouptenantgray ON config_info_gray (data_id, group_id, tenant_id, gray_name);
CREATE INDEX IF NOT EXISTS idx_dataid_gmt_modified ON config_info_gray (data_id, gmt_modified);
CREATE INDEX IF NOT EXISTS idx_gmt_modified ON config_info_gray (gmt_modified);
CREATE TABLE config_info_beta (
id SERIAL PRIMARY KEY,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
app_name varchar(128) DEFAULT NULL,
content text NOT NULL,
beta_ips varchar(1024) DEFAULT NULL,
md5 varchar(32) DEFAULT NULL,
gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
gmt_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
src_user text,
src_ip varchar(50) DEFAULT NULL,
tenant_id varchar(128) DEFAULT '',
encrypted_data_key varchar(1024) DEFAULT ''
);
COMMENT ON TABLE config_info_beta IS 'config_info_beta';
CREATE UNIQUE INDEX IF NOT EXISTS uk_configinfobeta_datagrouptenant ON config_info_beta (data_id, group_id, tenant_id);
CREATE TABLE config_info_tag (
id SERIAL PRIMARY KEY,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
tenant_id varchar(128) DEFAULT '',
tag_id varchar(128) NOT NULL,
app_name varchar(128) DEFAULT NULL,
content text NOT NULL,
md5 varchar(32) DEFAULT NULL,
gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
gmt_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
src_user text,
src_ip varchar(50) DEFAULT NULL
);
COMMENT ON TABLE config_info_tag IS 'config_info_tag';
CREATE UNIQUE INDEX IF NOT EXISTS uk_configinfotag_datagrouptenanttag ON config_info_tag (data_id, group_id, tenant_id, tag_id);
CREATE TABLE config_tags_relation (
id bigint NOT NULL,
tag_name varchar(128) NOT NULL,
tag_type varchar(64) DEFAULT NULL,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
tenant_id varchar(128) DEFAULT '',
nid SERIAL PRIMARY KEY
);
COMMENT ON TABLE config_tags_relation IS 'config_tag_relation';
CREATE UNIQUE INDEX IF NOT EXISTS uk_configtagrelation_configidtag ON config_tags_relation (id, tag_name, tag_type);
CREATE INDEX IF NOT EXISTS idx_tenant_id ON config_tags_relation (tenant_id);
CREATE TABLE group_capacity (
id SERIAL PRIMARY KEY,
group_id varchar(128) NOT NULL DEFAULT '',
quota int NOT NULL DEFAULT '0',
usage int NOT NULL DEFAULT '0',
max_size int NOT NULL DEFAULT '0',
max_aggr_count int NOT NULL DEFAULT '0',
max_aggr_size int NOT NULL DEFAULT '0',
max_history_count int NOT NULL DEFAULT '0',
gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
gmt_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
);
COMMENT ON TABLE group_capacity IS '集群、各Group容量信息表';
COMMENT ON COLUMN group_capacity.id IS '主键ID';
COMMENT ON COLUMN group_capacity.group_id IS 'Group ID空字符表示整个集群';
COMMENT ON COLUMN group_capacity.quota IS '配额0表示使用默认值';
COMMENT ON COLUMN group_capacity.usage IS '使用量';
COMMENT ON COLUMN group_capacity.max_size IS '单个配置大小上限单位为字节0表示使用默认值';
COMMENT ON COLUMN group_capacity.max_aggr_count IS '聚合子配置最大个数0表示使用默认值';
COMMENT ON COLUMN group_capacity.max_aggr_size IS '单个聚合数据的子配置大小上限单位为字节0表示使用默认值';
COMMENT ON COLUMN group_capacity.max_history_count IS '最大变更历史数量';
CREATE UNIQUE INDEX IF NOT EXISTS uk_group_id ON group_capacity (group_id);
CREATE TABLE his_config_info (
id bigint NOT NULL,
nid SERIAL PRIMARY KEY,
data_id varchar(255) NOT NULL,
group_id varchar(128) NOT NULL,
app_name varchar(128) DEFAULT NULL,
content text NOT NULL,
md5 varchar(32) DEFAULT NULL,
gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
gmt_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
src_user text,
src_ip varchar(50) DEFAULT NULL,
op_type char(10) DEFAULT NULL,
tenant_id varchar(128) DEFAULT '',
encrypted_data_key varchar(1024) DEFAULT '',
publish_type varchar(50) DEFAULT 'formal',
gray_name varchar(50) DEFAULT NULL,
ext_info text DEFAULT NULL
);
COMMENT ON TABLE his_config_info IS '多租户改造';
CREATE INDEX IF NOT EXISTS idx_gmt_create ON his_config_info (gmt_create);
CREATE INDEX IF NOT EXISTS idx_gmt_modified ON his_config_info (gmt_modified);
CREATE INDEX IF NOT EXISTS idx_did ON his_config_info (data_id);
CREATE TABLE tenant_capacity (
id SERIAL PRIMARY KEY,
tenant_id varchar(128) NOT NULL DEFAULT '',
quota int NOT NULL DEFAULT '0',
usage int NOT NULL DEFAULT '0',
max_size int NOT NULL DEFAULT '0',
max_aggr_count int NOT NULL DEFAULT '0',
max_aggr_size int NOT NULL DEFAULT '0',
max_history_count int NOT NULL DEFAULT '0',
gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
gmt_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
);
COMMENT ON TABLE tenant_capacity IS '租户容量信息表';
COMMENT ON COLUMN tenant_capacity.id IS '主键ID';
COMMENT ON COLUMN tenant_capacity.tenant_id IS 'Tenant ID';
COMMENT ON COLUMN tenant_capacity.quota IS '配额0表示使用默认值';
COMMENT ON COLUMN tenant_capacity.usage IS '使用量';
COMMENT ON COLUMN tenant_capacity.max_size IS '单个配置大小上限单位为字节0表示使用默认值';
COMMENT ON COLUMN tenant_capacity.max_aggr_count IS '聚合子配置最大个数';
COMMENT ON COLUMN tenant_capacity.max_aggr_size IS '单个聚合数据的子配置大小上限单位为字节0表示使用默认值';
COMMENT ON COLUMN tenant_capacity.max_history_count IS '最大变更历史数量';
CREATE UNIQUE INDEX IF NOT EXISTS uk_tenant_id ON tenant_capacity (tenant_id);
CREATE TABLE tenant_info (
id SERIAL PRIMARY KEY,
kp varchar(128) NOT NULL,
tenant_id varchar(128) DEFAULT '',
tenant_name varchar(128) DEFAULT '',
tenant_desc varchar(256) DEFAULT NULL,
create_source varchar(32) DEFAULT NULL,
gmt_create bigint NOT NULL,
gmt_modified bigint NOT NULL
);
COMMENT ON TABLE tenant_info IS 'tenant_info';
CREATE UNIQUE INDEX IF NOT EXISTS uk_tenant_info_kptenantid ON tenant_info (kp, tenant_id);
CREATE INDEX IF NOT EXISTS idx_tenant_id ON tenant_info (tenant_id);
CREATE TABLE users (
username varchar(50) PRIMARY KEY,
password varchar(500) NOT NULL,
enabled boolean NOT NULL
);
COMMENT ON TABLE users IS 'users';
COMMENT ON COLUMN users.username IS 'username';
COMMENT ON COLUMN users.password IS 'password';
COMMENT ON COLUMN users.enabled IS 'enabled';
CREATE TABLE roles (
username varchar(50) NOT NULL,
role varchar(50) NOT NULL
);
COMMENT ON TABLE roles IS 'roles';
COMMENT ON COLUMN roles.username IS 'username';
COMMENT ON COLUMN roles.role IS 'role';
CREATE UNIQUE INDEX IF NOT EXISTS idx_user_role ON roles (username, role);
CREATE TABLE permissions (
role varchar(50) NOT NULL,
resource varchar(128) NOT NULL,
action varchar(8) NOT NULL
);
COMMENT ON TABLE permissions IS 'permissions';
COMMENT ON COLUMN permissions.role IS 'role';
COMMENT ON COLUMN permissions.resource IS 'resource';
COMMENT ON COLUMN permissions.action IS 'action';
CREATE UNIQUE INDEX IF NOT EXISTS uk_role_permission ON permissions (role, resource, action);
-- 创建 nacos默认用户 nacos 密码 nacospwd
INSERT INTO users (username, password, enabled)
VALUES ('nacos', '$2a$10$isjtanRWoaXwHA0Z0LLl2.PHvRAcHdqpQeGZsAygg/rIyMNGSfhsG', true);
INSERT INTO roles (username, role)
VALUES ('nacos', 'ROLE_ADMIN');