1- CREATE TABLE IF NOT EXISTS prompt_cache (
2- idx SERIAL PRIMARY KEY , -- Changed from INT to SERIAL
3- prompt TEXT NOT NULL ,
4- response TEXT NOT NULL ,
5- llm TEXT NOT NULL ,
6- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
7- );
1+ -- Create a dedicated database for LangChain cache
2+ CREATE DATABASE langchain_cache ;
83
9- -- Create user with environment variable
10- CREATE USER prompt_cache_user WITH PASSWORD ' ${PROMPT_CACHE_PASSWORD}' ;
4+ -- Create a role with limited privileges (default password will be overridden)
5+ DO $$
6+ BEGIN
7+ EXECUTE format(' CREATE ROLE langchain_user WITH LOGIN PASSWORD %L' ,
8+ current_setting(' app.prompt_cache_password' ));
9+ EXCEPTION WHEN undefined_object THEN
10+ -- Fallback if the variable isn't set
11+ CREATE ROLE langchain_user WITH LOGIN PASSWORD ' langchain_pass' ;
12+ END
13+ $$;
1114
12- -- Grant permissions
13- GRANT CONNECT ON DATABASE prompt_cache_db TO prompt_cache_user;
14- GRANT USAGE ON SCHEMA public TO prompt_cache_user;
15- GRANT SELECT , INSERT ON prompt_cache TO prompt_cache_user;
16- GRANT USAGE, SELECT ON SEQUENCE prompt_cache_idx_seq TO prompt_cache_user;
15+ -- Rest of your SQL remains the same...
16+ GRANT CONNECT ON DATABASE langchain_cache TO langchain_user;
17+ \c langchain_cache
18+ GRANT USAGE ON SCHEMA public TO langchain_user;
19+ GRANT CREATE ON SCHEMA public TO langchain_user;
20+ GRANT SELECT , INSERT, UPDATE , DELETE ON ALL TABLES IN SCHEMA public TO langchain_user;
21+ ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT , INSERT, UPDATE , DELETE ON TABLES TO langchain_user;
0 commit comments