-- 向量库初始化(只在首次创建数据卷时执行一次) -- 与业务库完全隔离:这里没有任何任务/成员/工单数据,只有切片与向量。 CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS pg_trgm; -- 应用角色:非 superuser、无 BYPASSRLS。向量表同样开 RLS, -- 因为"知识库串租户"比"任务串租户"更致命——那是把别人公司的文档喂给模型。 DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'dadao_app') THEN CREATE ROLE dadao_app LOGIN PASSWORD 'dadao_dev_pw' NOSUPERUSER NOCREATEDB NOCREATEROLE NOBYPASSRLS; END IF; END $$; GRANT CONNECT ON DATABASE dadao_knowledge TO dadao_app; GRANT USAGE ON SCHEMA public TO dadao_app; -- 表结构由后端 alembic 建(迁移脚本里带 RLS 策略),这里只准备环境。 -- 但默认权限要提前给:否则 alembic 建完表,dadao_app 还是读不了。 ALTER DEFAULT PRIVILEGES FOR ROLE dadao_owner IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO dadao_app; ALTER DEFAULT PRIVILEGES FOR ROLE dadao_owner IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO dadao_app;