ruvector/docker/init.sql
rUv 79cad407f8 feat(docker): Add main RuVector Docker image with complete platform
- Create docker/Dockerfile with PostgreSQL extension + npm packages
- Build ruvnet/ruvector:0.2.5 image (PostgreSQL 17, Node.js 20)
- Include 65 SQL functions: vector, hyperbolic, sparse, GNN, routing, learning
- Pre-install npm packages: ruvector, @ruvector/sona, ruvllm, postgres-cli
- Add comprehensive Docker Hub README with 8 tutorials
- Update main README with Docker quickstart section
- Add Docker badge to README

Docker images available:
- ruvnet/ruvector:latest - Full platform (PostgreSQL + npm)
- ruvnet/ruvector-postgres:latest - PostgreSQL extension only

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 19:39:50 +00:00

65 lines
2.3 KiB
SQL

-- RuVector Initialization Script
-- This script runs automatically when the container starts
-- Create the RuVector extension
CREATE EXTENSION IF NOT EXISTS ruvector;
-- Display version
DO $$
BEGIN
RAISE NOTICE 'RuVector extension loaded: %', (SELECT ruvector_version());
END $$;
-- Create demo schema
CREATE SCHEMA IF NOT EXISTS ruvector_demo;
-- Demo table for vector search
CREATE TABLE IF NOT EXISTS ruvector_demo.documents (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
content TEXT,
embedding ruvector(1536),
metadata JSONB DEFAULT '{}',
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Demo table for smaller embeddings (OpenAI ada-002 compatible)
CREATE TABLE IF NOT EXISTS ruvector_demo.embeddings_384 (
id SERIAL PRIMARY KEY,
source_id TEXT,
embedding ruvector(384),
metadata JSONB DEFAULT '{}'
);
-- Demo table for hyperbolic embeddings (hierarchical data)
CREATE TABLE IF NOT EXISTS ruvector_demo.taxonomy (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
parent_id INTEGER REFERENCES ruvector_demo.taxonomy(id),
embedding ruvector(128), -- Poincaré ball embeddings
level INTEGER DEFAULT 0
);
-- Note: HNSW indexes can be created after data is inserted
-- Example:
-- CREATE INDEX ON ruvector_demo.documents USING hnsw (embedding ruvector_l2_ops)
-- WITH (m = 16, ef_construction = 64);
-- Grant permissions
GRANT USAGE ON SCHEMA ruvector_demo TO ruvector;
GRANT ALL ON ALL TABLES IN SCHEMA ruvector_demo TO ruvector;
GRANT ALL ON ALL SEQUENCES IN SCHEMA ruvector_demo TO ruvector;
-- Show available functions
DO $$
BEGIN
RAISE NOTICE 'RuVector initialized with 53+ SQL functions including:';
RAISE NOTICE ' - Vector: ruvector_l2_distance, ruvector_cosine_distance, ruvector_normalize';
RAISE NOTICE ' - Hyperbolic: ruvector_poincare_distance, ruvector_mobius_add, ruvector_exp_map';
RAISE NOTICE ' - Sparse: ruvector_sparse_dot, ruvector_bm25_score';
RAISE NOTICE ' - GNN: ruvector_gcn_forward, ruvector_graphsage_forward';
RAISE NOTICE ' - Attention: attention_score, attention_softmax';
RAISE NOTICE ' - Graph: ruvector_create_graph, ruvector_cypher, ruvector_shortest_path';
RAISE NOTICE ' - Routing: ruvector_route, ruvector_register_agent';
RAISE NOTICE ' - Learning: ruvector_enable_learning, ruvector_record_feedback';
END $$;