- 修复MCP Server数据库连接和导入问题 - 创建Data Ingestion服务核心模块 - 配置阿里云镜像源提升构建速度 - 添加项目状态报告和文档 - 完善微服务架构基础设施
108 lines
3.1 KiB
PL/PgSQL
108 lines
3.1 KiB
PL/PgSQL
-- taiji-AI-PAD 数据库初始化脚本
|
|
|
|
-- 创建扩展
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
CREATE EXTENSION IF NOT EXISTS "pg_trgm";
|
|
|
|
-- 创建数据库(如果不存在)
|
|
-- 注意:在Docker初始化脚本中,数据库已经存在
|
|
|
|
-- 设置时区
|
|
SET timezone = 'UTC';
|
|
|
|
-- 创建一些基础索引(如果表已存在的话,模型会自动创建)
|
|
-- 这里可以添加一些额外的性能优化索引
|
|
|
|
-- 创建全文搜索配置
|
|
CREATE TEXT SEARCH CONFIGURATION IF NOT EXISTS simple_english (COPY = english);
|
|
|
|
-- 创建一些有用的函数
|
|
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.updated_at = NOW();
|
|
RETURN NEW;
|
|
END;
|
|
$$ language 'plpgsql';
|
|
|
|
-- 日志表(用于审计和调试)
|
|
CREATE TABLE IF NOT EXISTS system_logs (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
level VARCHAR(20) NOT NULL,
|
|
service VARCHAR(50) NOT NULL,
|
|
message TEXT NOT NULL,
|
|
context JSONB,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_system_logs_service ON system_logs(service);
|
|
CREATE INDEX IF NOT EXISTS idx_system_logs_level ON system_logs(level);
|
|
CREATE INDEX IF NOT EXISTS idx_system_logs_created ON system_logs(created_at);
|
|
|
|
-- 配置表
|
|
CREATE TABLE IF NOT EXISTS system_config (
|
|
key VARCHAR(100) PRIMARY KEY,
|
|
value JSONB NOT NULL,
|
|
description TEXT,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
-- 创建触发器
|
|
CREATE TRIGGER update_system_config_updated_at
|
|
BEFORE UPDATE ON system_config
|
|
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
|
|
|
-- 插入初始配置
|
|
INSERT INTO system_config (key, value, description) VALUES
|
|
('app_version', '"1.0.0"', 'Application version'),
|
|
('maintenance_mode', 'false', 'Maintenance mode flag'),
|
|
('max_api_calls_per_minute', '1000', 'Maximum API calls per minute'),
|
|
('default_timeout', '30', 'Default timeout in seconds')
|
|
ON CONFLICT (key) DO NOTHING;
|
|
|
|
-- 性能优化设置
|
|
-- 注意:这些设置可能需要根据实际硬件调整
|
|
ALTER SYSTEM SET shared_preload_libraries = 'pg_stat_statements';
|
|
ALTER SYSTEM SET max_connections = 200;
|
|
ALTER SYSTEM SET shared_buffers = '256MB';
|
|
ALTER SYSTEM SET effective_cache_size = '1GB';
|
|
ALTER SYSTEM SET maintenance_work_mem = '64MB';
|
|
ALTER SYSTEM SET checkpoint_completion_target = 0.9;
|
|
ALTER SYSTEM SET wal_buffers = '16MB';
|
|
ALTER SYSTEM SET default_statistics_target = 100;
|
|
ALTER SYSTEM SET random_page_cost = 1.1;
|
|
ALTER SYSTEM SET effective_io_concurrency = 200;
|
|
ALTER SYSTEM SET work_mem = '4MB';
|
|
ALTER SYSTEM SET min_wal_size = '1GB';
|
|
ALTER SYSTEM SET max_wal_size = '4GB';
|
|
|
|
-- 创建监控视图
|
|
CREATE OR REPLACE VIEW system_stats AS
|
|
SELECT
|
|
schemaname,
|
|
tablename,
|
|
attname,
|
|
n_distinct,
|
|
correlation
|
|
FROM pg_stats
|
|
WHERE schemaname = 'public';
|
|
|
|
-- 创建连接监控视图
|
|
CREATE OR REPLACE VIEW connection_stats AS
|
|
SELECT
|
|
datname,
|
|
numbackends,
|
|
xact_commit,
|
|
xact_rollback,
|
|
blks_read,
|
|
blks_hit,
|
|
tup_returned,
|
|
tup_fetched,
|
|
tup_inserted,
|
|
tup_updated,
|
|
tup_deleted
|
|
FROM pg_stat_database
|
|
WHERE datname = current_database();
|
|
|