83 lines
2.9 KiB
Go
83 lines
2.9 KiB
Go
-- ====================================================
|
||
-- 云酒馆数据库初始化脚本
|
||
-- ====================================================
|
||
|
||
-- 设置客户端编码
|
||
SET client_encoding = 'UTF8';
|
||
|
||
-- 创建必要的扩展
|
||
-- ====================================================
|
||
|
||
-- 1. pgvector - 向量相似度搜索扩展(用于 AI 记忆功能)
|
||
CREATE EXTENSION IF NOT EXISTS vector;
|
||
|
||
-- 2. uuid-ossp - UUID 生成扩展(用于生成唯一标识符)
|
||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||
|
||
-- 3. pg_trgm - 三元组模糊匹配扩展(用于全文搜索)
|
||
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
||
|
||
-- 4. btree_gin - GIN 索引扩展(用于加速 JSONB 查询)
|
||
CREATE EXTENSION IF NOT EXISTS btree_gin;
|
||
|
||
-- 验证扩展是否安装成功
|
||
-- ====================================================
|
||
DO $$
|
||
BEGIN
|
||
RAISE NOTICE '===========================================';
|
||
RAISE NOTICE '云酒馆数据库初始化完成!';
|
||
RAISE NOTICE '===========================================';
|
||
RAISE NOTICE '已安装的扩展:';
|
||
RAISE NOTICE ' ✓ vector - 向量相似度搜索';
|
||
RAISE NOTICE ' ✓ uuid-ossp - UUID 生成';
|
||
RAISE NOTICE ' ✓ pg_trgm - 模糊搜索';
|
||
RAISE NOTICE ' ✓ btree_gin - GIN 索引优化';
|
||
RAISE NOTICE '===========================================';
|
||
RAISE NOTICE '数据库信息:';
|
||
RAISE NOTICE ' 数据库名: st_dev';
|
||
RAISE NOTICE ' 用户名: st_user';
|
||
RAISE NOTICE ' 字符集: UTF8';
|
||
RAISE NOTICE '===========================================';
|
||
END $$;
|
||
|
||
-- 创建用户并授予权限
|
||
-- ====================================================
|
||
-- 如果需要额外的只读用户,可以取消以下注释
|
||
-- CREATE USER st_readonly WITH PASSWORD 'readonly_password';
|
||
-- GRANT CONNECT ON DATABASE st_dev TO st_readonly;
|
||
-- GRANT USAGE ON SCHEMA public TO st_readonly;
|
||
-- GRANT SELECT ON ALL TABLES IN SCHEMA public TO st_readonly;
|
||
-- ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO st_readonly;
|
||
|
||
-- 性能优化设置
|
||
-- ====================================================
|
||
-- 启用 JIT 编译(PostgreSQL 11+)
|
||
SET jit = on;
|
||
|
||
-- 设置默认的统计信息采样
|
||
ALTER DATABASE st_dev SET default_statistics_target = 100;
|
||
|
||
-- 优化大数据量查询
|
||
ALTER DATABASE st_dev SET work_mem = '16MB';
|
||
|
||
-- 提示信息
|
||
-- ====================================================
|
||
\echo ''
|
||
\echo '=========================================='
|
||
\echo '数据库初始化完成!'
|
||
\echo '=========================================='
|
||
\echo '连接信息:'
|
||
\echo ' Host: localhost'
|
||
\echo ' Port: 5432'
|
||
\echo ' Database: st_dev'
|
||
\echo ' Username: st_user'
|
||
\echo ' Password: st_password'
|
||
\echo '=========================================='
|
||
\echo ''
|
||
\echo '管理工具:'
|
||
\echo ' pgAdmin: http://localhost:5050'
|
||
\echo ' Email: admin@st.local'
|
||
\echo ' Pass: admin123'
|
||
\echo '=========================================='
|
||
\echo ''
|