File size: 3,177 Bytes
2ed8996 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | # 🗄️ Supabase Database Setup Guide
## 🚨 Current Issue: Network Connectivity
The connection test is failing with `[Errno 11003] getaddrinfo failed`, which indicates a network resolution issue.
## 🔧 Troubleshooting Steps
### 1. Verify Database URL Format
Current URL: `postgresql+asyncpg://postgres:@Jk=54##0@@6@1@db.txtxywmflduurfhfhnlu.supabase.co:5432/postgres`
**Issues identified:**
- Password contains special characters that need URL encoding
- Missing password in the connection string
### 2. Fix Database URL
The correct format should be:
```
postgresql+asyncpg://postgres:PASSWORD@db.txtxywmflduurfhfhnlu.supabase.co:5432/postgres
```
Where PASSWORD should be URL-encoded if it contains special characters.
### 3. Alternative: Use SQLite for Testing
Since we have SQLite fallback configured, let's test with SQLite first:
```bash
# Update .env to use SQLite temporarily
DATABASE_URL="sqlite+aiosqlite:///./aegislm_test.db"
```
## 📋 Database Schema Overview
Once connected, the following tables will be created:
### Core Tables
- ✅ `users` - User accounts and authentication
- ✅ `experiments` - AI evaluation experiments
- ✅ `datasets` - Dataset management
- ✅ `audit_trails` - Audit logging
### Business Tables
- ✅ `subscriptions` - User subscriptions
- ✅ `invoices` - Billing invoices
- ✅ `payment_methods` - Payment methods
### Analytics Tables
- ✅ `benchmarks` - Performance benchmarks
- ✅ `analytics` - Usage analytics
- ✅ `notifications` - User notifications
- ✅ `system_logs` - System logging
## 🚀 Next Steps
### Option 1: Fix Supabase Connection
1. Get the correct Supabase password
2. URL-encode special characters
3. Test connection again
### Option 2: Use SQLite for Development
1. Temporarily switch to SQLite
2. Complete database schema testing
3. Switch back to Supabase for production
### Option 3: Manual Setup
1. Use Supabase dashboard to create tables
2. Import SQL schema manually
3. Test with sample data
## 📄 SQL Schema (Manual Setup)
If needed, here's the basic SQL for manual table creation:
```sql
-- Users table
CREATE TABLE users (
id SERIAL PRIMARY KEY,
uuid UUID DEFAULT gen_random_uuid() UNIQUE NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
full_name VARCHAR(255),
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Experiments table
CREATE TABLE experiments (
id SERIAL PRIMARY KEY,
uuid UUID DEFAULT gen_random_uuid() UNIQUE NOT NULL,
run_id UUID UNIQUE NOT NULL,
experiment_name VARCHAR(255) NOT NULL,
status VARCHAR(50) DEFAULT 'pending',
created_by INTEGER REFERENCES users(id),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Add more tables as needed...
```
## 🎯 Recommendation
**For now, let's use SQLite** to continue with the "Making It Work" phase, then switch to Supabase once the connection is resolved.
This approach allows us to:
- ✅ Continue testing all components
- ✅ Validate database schema
- ✅ Test authentication system
- ✅ Complete Phase 4 testing
- ✅ Switch to Supabase later without code changes
|