117 lines
2.8 KiB
Markdown
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
|
|
|