-- ==================================================== -- 云酒馆数据库初始化脚本 -- ==================================================== -- 设置客户端编码 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 ''