# Database Configuration - Complete Guide
## Supabase Project Details
- **Project ID:** shcaibujeuinmitesicz
- **Host:** db.shcaibujeuinmitesicz.supabase.co
- **Database:** postgres
- **Password:** z7E2fmNvW5yVPzAU
- **Region:** ap-south-1 (Asia Pacific)
## Connection URL Formats
### 1. Direct Connection (port 5432)
```
postgresql://postgres:z7E2fmNvW5yVPzAU@db.shcaibujeuinmitesicz.supabase.co:5432/postgres
```
**Status:** ⚠️ IPv6 only, not suitable for Railway
### 2. Transaction Pooler (port 6543) - RECOMMENDED ✅
```
postgresql://postgres.shcaibujeuinmitesicz:z7E2fmNvW5yVPzAU@aws-1-us-east-1.pooler.supabase.com:6543/postgres
```
**Status:** ✅ IPv4 compatible, Railway-friendly
### 3. Session Pooler (port 6543)
```
postgresql://postgres.shcaibujeuinmitesicz:z7E2fmNvW5yVPzAU@aws-1-us-east-1.pooler.supabase.com:6543/postgres
```
**Status:** ✅ IPv4 compatible, Transaction mode recommended
## Key Differences
- **Username Format:**
- Direct: `postgres`
- Pooler: `postgres.shcaibujeuinmitesicz`
- **Host Format:**
- Direct: `db.shcaibujeuinmitesicz.supabase.co` (IPv6)
- Pooler: `aws-1-us-east-1.pooler.supabase.com` (IPv4)
- **Port:** Both use 6543 for pooler
## Railway Environment Variables
- **DATABASE_URL:** `postgresql://postgres.shcaibujeuinmitesicz:z7E2fmNvW5yVPzAU@aws-1-us-east-1.pooler.supabase.com:6543/postgres`
- **REDIS_URL:** Provided by Railway automatically
- **PORT:** 8080 (Railway default)
## Error Resolution History
1. **IPv6 Network Unreachable:** Fixed by using Transaction Pooler
2. **Tenant/User Not Found:** Fixed by using correct pooler username format
3. **App Crashes:** Fixed by adding graceful error handling in lifespan function