You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

262 lines
9.9 KiB

/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-- Create user nacos (Oracle schema is created through user creation)
-- CREATE USER nacos IDENTIFIED BY nacos;
-- GRANT CONNECT, RESOURCE TO nacos;
CREATE TABLE config_info (
id NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,
data_id VARCHAR2(255) NOT NULL,
group_id VARCHAR2(128) NOT NULL,
tenant_id VARCHAR2(128) DEFAULT '',
app_name VARCHAR2(128),
content CLOB,
md5 VARCHAR2(32) DEFAULT NULL,
gmt_create TIMESTAMP NOT NULL DEFAULT SYSTIMESTAMP,
gmt_modified TIMESTAMP NOT NULL DEFAULT SYSTIMESTAMP,
src_user VARCHAR2(128) DEFAULT NULL,
src_ip VARCHAR2(50) DEFAULT NULL,
c_desc VARCHAR2(256) DEFAULT NULL,
c_use VARCHAR2(64) DEFAULT NULL,
effect VARCHAR2(64) DEFAULT NULL,
type VARCHAR2(64) DEFAULT NULL,
c_schema CLOB DEFAULT NULL,
encrypted_data_key VARCHAR2(1024) DEFAULT NULL,
CONSTRAINT configinfo_id_key PRIMARY KEY (id),
CONSTRAINT uk_configinfo_datagrouptenant UNIQUE (data_id, group_id, tenant_id)
);
CREATE INDEX configinfo_dataid_key_idx ON config_info(data_id);
CREATE INDEX configinfo_groupid_key_idx ON config_info(group_id);
CREATE INDEX configinfo_dataid_group_key_idx ON config_info(data_id, group_id);
CREATE TABLE his_config_info (
id NUMBER(20) NOT NULL,
nid NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,
data_id VARCHAR2(255) NOT NULL,
group_id VARCHAR2(128) NOT NULL,
tenant_id VARCHAR2(128) DEFAULT '',
app_name VARCHAR2(128),
content CLOB,
md5 VARCHAR2(32) DEFAULT NULL,
gmt_create TIMESTAMP NOT NULL DEFAULT SYSTIMESTAMP,
gmt_modified TIMESTAMP NOT NULL DEFAULT SYSTIMESTAMP,
src_user VARCHAR2(128),
src_ip VARCHAR2(50) DEFAULT NULL,
publish_type VARCHAR2(50) DEFAULT 'formal',
gray_name VARCHAR2(128) DEFAULT NULL,
ext_info CLOB,
op_type CHAR(10) DEFAULT NULL,
encrypted_data_key VARCHAR2(1024) DEFAULT NULL,
CONSTRAINT hisconfiginfo_nid_key PRIMARY KEY (nid)
);
CREATE INDEX hisconfiginfo_dataid_key_idx ON his_config_info(data_id);
CREATE INDEX hisconfiginfo_gmt_create_idx ON his_config_info(gmt_create);
CREATE INDEX hisconfiginfo_gmt_modified_idx ON his_config_info(gmt_modified);
CREATE TABLE config_info_gray (
id NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,
data_id VARCHAR2(255) NOT NULL,
group_id VARCHAR2(128) NOT NULL,
tenant_id VARCHAR2(128) DEFAULT '',
gray_name VARCHAR2(128) NOT NULL,
gray_rule CLOB,
app_name VARCHAR2(128),
src_ip VARCHAR2(128),
src_user VARCHAR2(128) DEFAULT '',
content CLOB,
md5 VARCHAR2(32) DEFAULT NULL,
encrypted_data_key VARCHAR2(256) DEFAULT NULL,
gmt_create TIMESTAMP NOT NULL DEFAULT SYSTIMESTAMP,
gmt_modified TIMESTAMP NOT NULL DEFAULT SYSTIMESTAMP,
CONSTRAINT configinfogray_id_key PRIMARY KEY (id),
CONSTRAINT uk_configinfogray_datagrouptenantgrayname UNIQUE (data_id, group_id, tenant_id, gray_name)
);
CREATE INDEX config_info_gray_dataid_gmt_modified ON config_info_gray(data_id, gmt_modified);
CREATE INDEX config_info_gray_gmt_modified ON config_info_gray(gmt_modified);
CREATE TABLE config_tags_relation (
id NUMBER(19) NOT NULL,
tag_name VARCHAR2(128) NOT NULL,
tag_type VARCHAR2(64) DEFAULT NULL,
data_id VARCHAR2(255) NOT NULL,
group_id VARCHAR2(128) NOT NULL,
tenant_id VARCHAR2(128) DEFAULT '',
nid NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,
CONSTRAINT config_tags_id_key PRIMARY KEY (nid),
CONSTRAINT uk_configtagrelation_configidtag UNIQUE (id, tag_name, tag_type)
);
CREATE INDEX config_tags_tenant_id_idx ON config_tags_relation(tenant_id);
CREATE TABLE group_capacity (
id NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,
group_id VARCHAR2(128) DEFAULT '',
quota NUMBER(10) DEFAULT 0,
usage NUMBER(10) DEFAULT 0,
max_size NUMBER(10) DEFAULT 0,
max_aggr_count NUMBER(10) DEFAULT 0,
max_aggr_size NUMBER(10) DEFAULT 0,
max_history_count NUMBER(10) DEFAULT 0,
gmt_create TIMESTAMP DEFAULT SYSTIMESTAMP,
gmt_modified TIMESTAMP DEFAULT SYSTIMESTAMP,
CONSTRAINT group_capacity_id_key PRIMARY KEY (id),
CONSTRAINT uk_group_id UNIQUE (group_id)
);
CREATE TABLE tenant_capacity (
id NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,
tenant_id VARCHAR2(128) DEFAULT '',
quota NUMBER(10) DEFAULT 0,
usage NUMBER(10) DEFAULT 0,
max_size NUMBER(10) DEFAULT 0,
max_aggr_count NUMBER(10) DEFAULT 0,
max_aggr_size NUMBER(10) DEFAULT 0,
max_history_count NUMBER(10) DEFAULT 0,
gmt_create TIMESTAMP DEFAULT SYSTIMESTAMP,
gmt_modified TIMESTAMP DEFAULT SYSTIMESTAMP,
CONSTRAINT tenant_capacity_id_key PRIMARY KEY (id),
CONSTRAINT uk_tenant_id UNIQUE (tenant_id)
);
CREATE TABLE tenant_info (
id NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,
kp VARCHAR2(128) NOT NULL,
tenant_id VARCHAR2(128) DEFAULT '',
tenant_name VARCHAR2(128) DEFAULT '',
tenant_desc VARCHAR2(256) DEFAULT NULL,
create_source VARCHAR2(32) DEFAULT NULL,
gmt_create TIMESTAMP NOT NULL DEFAULT SYSTIMESTAMP,
gmt_modified TIMESTAMP NOT NULL DEFAULT SYSTIMESTAMP,
CONSTRAINT tenant_info_id_key PRIMARY KEY (id),
CONSTRAINT uk_tenant_info_kptenantid UNIQUE (kp, tenant_id)
);
CREATE INDEX tenant_info_tenant_id_idx ON tenant_info(tenant_id);
CREATE TABLE users (
username VARCHAR2(50) NOT NULL PRIMARY KEY,
password VARCHAR2(500) NOT NULL,
enabled NUMBER(1) NOT NULL DEFAULT 1
);
CREATE TABLE roles (
username VARCHAR2(50) NOT NULL,
role VARCHAR2(50) NOT NULL,
CONSTRAINT uk_username_role UNIQUE (username, role)
);
CREATE TABLE permissions (
role VARCHAR2(50) NOT NULL,
resource VARCHAR2(255) NOT NULL,
action VARCHAR2(8) NOT NULL,
CONSTRAINT uk_role_permission UNIQUE (role, resource, action)
);
/******************************************/
/* ipv6 support */
/******************************************/
-- Note: In Oracle, ALTER TABLE ADD for existing columns should be handled carefully
-- The following statements are kept for compatibility but may need adjustment if columns already exist
-- ALTER TABLE his_config_info ADD src_ip VARCHAR2(50) DEFAULT NULL;
-- ALTER TABLE config_info ADD src_ip VARCHAR2(50) DEFAULT NULL;
/******************************************/
/* support gray history since 2.5.0 */
/******************************************/
-- Note: These columns are already included in the CREATE TABLE statement above
-- The following ALTER statements are kept for reference when upgrading from older versions
-- ALTER TABLE his_config_info ADD publish_type VARCHAR2(50) DEFAULT 'formal';
-- ALTER TABLE his_config_info ADD ext_info CLOB DEFAULT NULL;
-- ALTER TABLE his_config_info ADD gray_name VARCHAR2(128) DEFAULT NULL;
/******************************************/
/* 表名称 = pipeline_execution */
/******************************************/
CREATE TABLE pipeline_execution (
execution_id VARCHAR2(64) NOT NULL,
resource_type VARCHAR2(32) NOT NULL,
resource_name VARCHAR2(256) NOT NULL,
namespace_id VARCHAR2(128) DEFAULT NULL,
version VARCHAR2(64) DEFAULT NULL,
status VARCHAR2(32) NOT NULL,
pipeline CLOB NOT NULL,
create_time NUMBER(20) NOT NULL,
update_time NUMBER(20) NOT NULL,
CONSTRAINT pk_pipeline_execution PRIMARY KEY (execution_id)
);
/******************************************/
/* 表名称 = ai_resource */
/******************************************/
CREATE TABLE ai_resource (
id NUMBER(20) GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
gmt_create TIMESTAMP DEFAULT SYSTIMESTAMP NOT NULL,
gmt_modified TIMESTAMP DEFAULT SYSTIMESTAMP NOT NULL,
name VARCHAR2(256) NOT NULL,
type VARCHAR2(32) NOT NULL,
c_desc VARCHAR2(1024) DEFAULT NULL,
status VARCHAR2(32) DEFAULT NULL,
namespace_id VARCHAR2(128) DEFAULT '' NOT NULL,
biz_tags VARCHAR2(1024) DEFAULT NULL,
ext CLOB DEFAULT NULL,
c_from VARCHAR2(256) DEFAULT 'local' NOT NULL,
version_info CLOB DEFAULT NULL,
meta_version NUMBER(20) DEFAULT 1 NOT NULL,
scope VARCHAR2(16) DEFAULT 'PRIVATE' NOT NULL,
owner VARCHAR2(128) DEFAULT '' NOT NULL,
download_count NUMBER(20) DEFAULT 0 NOT NULL,
CONSTRAINT uk_ai_resource_ns_name_type UNIQUE (namespace_id, name, type, c_from)
);
CREATE INDEX idx_ai_resource_name ON ai_resource(name);
CREATE INDEX idx_ai_resource_type ON ai_resource(type);
CREATE INDEX idx_ai_resource_gmt_modified ON ai_resource(gmt_modified);
/******************************************/
/* 表名称 = ai_resource_version */
/******************************************/
CREATE TABLE ai_resource_version (
id NUMBER(20) GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
gmt_create TIMESTAMP DEFAULT SYSTIMESTAMP NOT NULL,
gmt_modified TIMESTAMP DEFAULT SYSTIMESTAMP NOT NULL,
type VARCHAR2(32) NOT NULL,
author VARCHAR2(128) DEFAULT NULL,
name VARCHAR2(256) NOT NULL,
c_desc VARCHAR2(1024) DEFAULT NULL,
status VARCHAR2(32) NOT NULL,
version VARCHAR2(64) NOT NULL,
namespace_id VARCHAR2(128) DEFAULT '' NOT NULL,
storage CLOB DEFAULT NULL,
publish_pipeline_info CLOB DEFAULT NULL,
download_count NUMBER(20) DEFAULT 0 NOT NULL,
CONSTRAINT uk_ai_res_ver_ns_nm_tp_ver UNIQUE (namespace_id, name, type, version)
);
CREATE INDEX idx_ai_res_ver_name ON ai_resource_version(name);
CREATE INDEX idx_ai_res_ver_status ON ai_resource_version(status);
CREATE INDEX idx_ai_res_ver_gmt_mod ON ai_resource_version(gmt_modified);