Managed PostgreSQL, Redis, and vector databases with backups, replicas, and branching.
Provision a PostgreSQL database in seconds:
rf add postgres
✓ PostgreSQL 16 provisioned (plan: starter)
✓ DATABASE_URL injected into environment
Host: pg-abc123.raidframe.net
Port: 5432
Database: myapp
User: rf_user
| Plan | CPU | Memory | Storage | Connections | Price |
|---|---|---|---|---|---|
| Starter | Shared | 256 MB | 1 GB | 25 | Free |
| Standard | 1 vCPU | 1 GB | 10 GB | 100 | $7/mo |
| Pro | 2 vCPU | 4 GB | 50 GB | 300 | $25/mo |
| Pro Plus | 4 vCPU | 8 GB | 100 GB | 500 | $50/mo |
| Performance | 8 vCPU | 16 GB | 500 GB | 1000 | $100/mo |
| Performance XL | 16 vCPU | 32 GB | 1 TB | 2000 | $200/mo |
rf db upgrade main --plan pro
PostgreSQL 14, 15, and 16. Default is 16.
rf db extensions list main
rf db extensions enable main pgvector
Supported extensions: pgvector, pg_trgm, postgis, hstore, uuid-ossp, pg_stat_statements, btree_gin, btree_gist, citext, ltree, tablefunc.
# Open psql shell
rf db connect main
# Run a query
rf db query main "SELECT count(*) FROM users"
# Local proxy (localhost:5432 → remote database)
rf db proxy main
✓ Proxy running: localhost:5432 → pg-abc123.raidframe.net:5432
Connect with: psql postgresql://rf_user:****@localhost:5432/myapp
Press Ctrl+C to stop
Automatic daily backups with 30-day retention. Point-in-time recovery to any second.
# List backups
rf db backups main
# Create manual backup
rf db backup main --name before-migration
# Restore to point in time
rf db restore main --to "2026-03-15T14:30:00Z"
# Restore from named backup
rf db restore main --backup before-migration
# Import from SQL dump
rf db import main ./backup.sql
# Import from pg_dump format
rf db import main ./backup.dump --format custom
# Export full database
rf db export main --output ./backup.sql
# Export specific tables
rf db export main --tables users,orders --output ./partial.sql
Add read replicas in any region:
rf db replicas add main --region eu-west-1
rf db replicas add main --region ap-southeast-1
✓ Read replica created in eu-west-1
URL: DATABASE_REPLICA_EU_URL (auto-injected)
PgBouncer is built in. Connection pooling is enabled by default with transaction mode.
rf db pool main --mode session # For prepared statements
rf db pool main --mode transaction # Default, best for most apps
rf db pool main --size 200 # Max pool connections
rf add redis
✓ Redis 7.2 provisioned
✓ REDIS_URL injected into environment
| Plan | Memory | Connections | Persistence | Price |
|---|---|---|---|---|
| Starter | 256 MB | 100 | No | Free |
| Standard | 1 GB | 500 | AOF | $10/mo |
| Pro | 4 GB | 2000 | AOF + RDB | $30/mo |
| Performance | 16 GB | 5000 | AOF + RDB | $80/mo |
rf db config cache maxmemory-policy allkeys-lru
rf db config cache maxmemory 2gb
For AI/ML workloads — store and query embeddings:
rf add vector
✓ Vector DB provisioned
✓ VECTOR_URL injected into environment
Use for semantic search, RAG pipelines, recommendation engines, and similarity matching. Compatible with the OpenAI embeddings API format.
Compare schemas between environments:
rf db diff main --env production --env staging
SCHEMA DIFFERENCES (production → staging)
──────────────────────────────────────────
+ TABLE user_profiles (staging only)
+ id uuid PRIMARY KEY
+ user_id uuid REFERENCES users(id)
+ bio text
+ avatar_url text
~ TABLE users
+ COLUMN phone_number varchar(20) (staging only)
~ COLUMN name: varchar(100) → varchar(255) (staging)
View slow queries and index recommendations:
rf db insights main
SLOW QUERIES (avg > 100ms, last 24h)
─────────────────────────────────────
1. SELECT * FROM orders WHERE user_id = $1 ORDER BY created_at DESC
Avg: 340ms Calls: 12,847 Total: 4,367s
⚡ Recommendation: CREATE INDEX idx_orders_user_created ON orders(user_id, created_at DESC);
2. SELECT * FROM products WHERE name ILIKE $1
Avg: 180ms Calls: 3,201 Total: 576s
⚡ Recommendation: CREATE INDEX idx_products_name_trgm ON products USING gin(name gin_trgm_ops);