What are Extensions?
Extensions are modular packages that add new features to PostgreSQL without modifying the core database engine. They can provide:- New data types (e.g., vectors, geometric types)
- New functions (e.g., similarity search, distance calculations)
- New operators and index types
- Foreign data wrappers for external data sources
- Administrative and monitoring tools
Managing Extensions
Enable an Extension
- Dashboard
- SQL
- Go to Database → Extensions in the Dashboard
- Find the extension you want to enable
- Click the toggle to enable it
Disable an Extension
List Installed Extensions
Popular Extensions
pgvector - Vector Embeddings
Store and query vector embeddings for AI/ML applications.Real Example from Supabase Source
PostGIS - Geospatial Data
Work with geographic and geometric data.pg_cron - Scheduled Jobs
Run periodic jobs directly in your database.pg_net - HTTP Requests
Make HTTP requests from your database.pgjwt - JSON Web Tokens
Create and verify JWTs in SQL.pgcrypto - Encryption
Encrypt sensitive data in your database.uuid-ossp - UUID Generation
Generate various types of UUIDs.pg_stat_statements - Query Performance
Track and analyze query performance.pg_trgm - Fuzzy String Matching
Find similar strings using trigram matching.TimescaleDB - Time-Series Data
Optimize time-series data storage and queries.Extension Schemas
Most extensions are installed in theextensions schema to keep things organized:
The
extensions schema is accessible to public by default. For sensitive extensions, create a separate schema with restricted access.Upgrading Extensions
When new extension versions become available:Custom Extensions
You can install pure SQL extensions directly:Available Extensions
Supabase provides over 50 pre-installed extensions:AI & Vector Search
AI & Vector Search
- pgvector: Vector similarity search for AI/ML
- pg_embedding: Additional vector operations
Full-Text Search
Full-Text Search
- pg_trgm: Fuzzy string matching
- rum: Advanced full-text search indexes
- pgroonga: Multi-language full-text search
Geospatial
Geospatial
- postgis: Geographic objects and functions
- postgis_topology: Topology support
- postgis_tiger_geocoder: US address geocoding
- pgrouting: Geospatial routing
Time-Series
Time-Series
- timescaledb: Time-series optimization
HTTP & Webhooks
HTTP & Webhooks
- pg_net: Make HTTP requests
- pg_cron: Schedule jobs
Security & Auth
Security & Auth
- pgjwt: JSON Web Tokens
- pgcrypto: Cryptographic functions
- uuid-ossp: UUID generation
- pgaudit: Audit logging
Data Integration
Data Integration
- postgres_fdw: Foreign data wrapper
- Wrappers: Connect to external data sources
Performance & Monitoring
Performance & Monitoring
- pg_stat_statements: Query performance stats
- pg_repack: Remove bloat without locking
- hypopg: Hypothetical indexes
- index_advisor: Index recommendations
Requesting Extensions
If you need an extension that’s not available:- Check the Extensions Discussion
- Upvote existing requests or create a new one
- Provide use case details to help prioritize
Best Practices
Install extensions in dedicated schemas
Install extensions in dedicated schemas
Keep extensions organized and avoid namespace pollution.
Only enable extensions you need
Only enable extensions you need
Each extension adds overhead. Enable only what you use.
Test extension upgrades
Test extension upgrades
Test in a development environment before upgrading production.
Document extension usage
Document extension usage
Keep track of which extensions your project depends on.
Use extension-specific indexes
Use extension-specific indexes
Many extensions provide specialized index types for better performance.
Next Steps
Tables
Create tables to use with extensions
Functions
Write functions using extension features
Migrations
Manage extensions in your migration files
Full Extension List
Browse all available extensions
