Initial commit
This commit is contained in:
48
scripts/init.sql
Normal file
48
scripts/init.sql
Normal file
@@ -0,0 +1,48 @@
|
||||
CREATE EXTENSION IF NOT EXISTS vector;
|
||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||
|
||||
CREATE TABLE IF NOT EXISTS vector_stores (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name VARCHAR(255) NOT NULL,
|
||||
owner_user_id VARCHAR(255) NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS documents (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
store_id UUID REFERENCES vector_stores(id) ON DELETE CASCADE,
|
||||
content TEXT NOT NULL,
|
||||
metadata JSONB DEFAULT '{}',
|
||||
embedding vector(1024),
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS store_permissions (
|
||||
store_id UUID REFERENCES vector_stores(id) ON DELETE CASCADE,
|
||||
user_id VARCHAR(255) NOT NULL,
|
||||
permission VARCHAR(50) DEFAULT 'read',
|
||||
PRIMARY KEY (store_id, user_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS usage_stats (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id VARCHAR(255) NOT NULL,
|
||||
store_id UUID REFERENCES vector_stores(id) ON DELETE SET NULL,
|
||||
action VARCHAR(50) NOT NULL,
|
||||
tokens INT DEFAULT 0,
|
||||
duration FLOAT DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_documents_store
|
||||
ON documents(store_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_documents_embedding
|
||||
ON documents USING ivfflat (embedding vector_cosine_ops)
|
||||
WITH (lists = 100);
|
||||
CREATE INDEX IF NOT EXISTS idx_usage_user
|
||||
ON usage_stats(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_usage_created
|
||||
ON usage_stats(created_at);
|
||||
|
||||
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO vecuser;
|
||||
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO vecuser;
|
||||
Reference in New Issue
Block a user