# pgAdmin Database Administration Guide ## Access pgAdmin - **URL**: http://localhost:8080 - **Email**: admin@serpentrace.dev - **Password**: admin ## Pre-configured Server The pgAdmin interface should have a pre-configured server named **"SerpentRace PostgreSQL Dev"** in the "Development" group. ## Manual Server Configuration (If Needed) If the server is not automatically configured, add it manually: ### Server Details - **Name**: SerpentRace PostgreSQL Dev - **Host**: postgres (or localhost if connecting from outside Docker) - **Port**: 5432 - **Database**: serpentrace - **Username**: postgres - **Password**: postgres ### Steps to Add Server Manually 1. Right-click on "Servers" in the left panel 2. Select "Register" > "Server..." 3. Fill in the "General" tab: - Name: `SerpentRace PostgreSQL Dev` - Server group: `Development` 4. Fill in the "Connection" tab: - Host name/address: `postgres` - Port: `5432` - Maintenance database: `serpentrace` - Username: `postgres` - Password: `postgres` 5. Click "Save" ## Common Database Operations ### View Tables 1. Expand the server connection 2. Expand "Databases" > "serpentrace" 3. Expand "Schemas" > "public" 4. Expand "Tables" ### Run SQL Queries 1. Right-click on the database name 2. Select "Query Tool" 3. Write your SQL queries in the editor 4. Click the "Execute" button or press F5 ### View Data 1. Right-click on any table 2. Select "View/Edit Data" > "All Rows" ## Troubleshooting ### Connection Issues - Ensure Docker containers are running: `docker ps` - Check container logs: `docker logs serpentrace-postgres-dev` - Test connections: `npm run test:connections` ### Authentication Failed - Verify the password is correct: `postgres` - Check if you're using the correct hostname: `postgres` (inside Docker) vs `localhost` (outside Docker) ### Server Not Appearing - Restart pgAdmin container: ```bash docker-compose -f docker-compose.dev.yml restart pgadmin ``` - Clear browser cache and reload ## Development Tips ### Useful SQL Queries ```sql -- List all tables SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'; -- Check database size SELECT pg_size_pretty(pg_database_size('serpentrace')); -- View active connections SELECT * FROM pg_stat_activity WHERE datname = 'serpentrace'; -- Check migration status (if using TypeORM) SELECT * FROM migrations ORDER BY timestamp DESC; ``` ### Database Backup 1. Right-click on database name 2. Select "Backup..." 3. Choose format (Custom recommended for pgAdmin restore) 4. Set filename and location 5. Click "Backup" ### Database Restore 1. Right-click on "Databases" 2. Select "Restore..." 3. Choose the backup file 4. Configure options as needed 5. Click "Restore" ## Security Notes ⚠️ **Development Only**: The current configuration uses default credentials and is intended for development only. For production: - Use strong, unique passwords - Enable SSL connections - Restrict network access - Use environment variables for credentials - Enable authentication and authorization features