| # 🗄️ 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 |
|
|