Files
SIB/old/QUICK-START-POSTGRESQL.md

117 lines
2.8 KiB
Markdown

# Quick Start: PostgreSQL Setup
## ✅ What's Been Configured
1. **Backend Database Connection**: Configured to use `postgresql+asyncpg://sibu:sibu@localhost:5432/sibu`
2. **Environment File**: Created `backend/.env.development` with database settings
3. **API Client**: Created Flutter `ApiClient` service for backend communication
4. **Run Scripts**: Created helper scripts for easy execution
## 🚀 Quick Start
### 1. Ensure PostgreSQL is Running
```bash
# Check if PostgreSQL is running
psql -h localhost -p 5432 -U sibu -d sibu -c "SELECT version();"
```
If it fails, start PostgreSQL:
```bash
# macOS with Homebrew
brew services start postgresql@14 # or your version
```
### 2. Create Database (if needed)
```bash
psql -h localhost -p 5432 -U postgres -c "CREATE DATABASE sibu;"
psql -h localhost -p 5432 -U postgres -c "CREATE USER sibu WITH PASSWORD 'sibu';"
psql -h localhost -p 5432 -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE sibu TO sibu;"
```
### 3. Apply Database Schema
You have migrations in `supabase/migrations/`. Apply them:
```bash
cd old
# Apply all migrations
for migration in supabase/migrations/*.sql; do
psql -h localhost -p 5432 -U sibu -d sibu -f "$migration"
done
```
Or use Alembic (if backend models match):
```bash
cd backend
uv run alembic upgrade head
```
### 4. Start Backend API
```bash
cd backend
uv run fastapi dev app/main.py
```
Backend will be available at: `http://localhost:8000`
### 5. Run Flutter App
In a new terminal:
```bash
cd old
./scripts/run-flutter-backend.sh
```
Or manually:
```bash
flutter run -d chrome --dart-define=API_BASE_URL=http://localhost:8000
```
## 📋 Configuration Summary
| Component | Configuration |
|-----------|--------------|
| **Database** | `sibu:sibu@localhost:5432/sibu` |
| **Backend API** | `http://localhost:8000` |
| **Flutter API Client** | Configured via `--dart-define=API_BASE_URL` |
## 🔍 Verify Setup
### Test Database Connection
```bash
psql -h localhost -p 5432 -U sibu -d sibu -c "\dt" # List tables
```
### Test Backend API
```bash
curl http://localhost:8000/health
curl http://localhost:8000/api/routes
```
### Test Flutter Connection
The app will automatically try to connect to the backend API on startup.
## 📚 Next Steps
- See `README-POSTGRESQL-SETUP.md` for detailed documentation
- Update Flutter services to use `ApiClient` instead of `SupabaseService` (currently still using Supabase)
- Add authentication if needed
- Configure CORS properly for production
## 🐛 Troubleshooting
**Backend can't connect:**
- Check PostgreSQL is running: `lsof -i :5432`
- Verify credentials: `psql -h localhost -p 5432 -U sibu -d sibu`
- Check `.env.development` file exists
**Flutter can't connect:**
- Verify backend is running: `curl http://localhost:8000/health`
- Check API_BASE_URL is set correctly
- Check browser console for CORS errors