- Implement OAuth 2.0 and PAT authentication methods - Add user management, roles, and profile functionality - Add database migrations and admin user scripts - Update services for authentication and user settings - Add protected routes and permission hooks - Update documentation for authentication and database access
3.1 KiB
3.1 KiB
Database Access Guide
This guide shows you how to easily access and view records in the PostgreSQL database.
Quick Access
Option 1: Using the Script (Easiest)
# Connect using psql
./scripts/open-database.sh psql
# Or via Docker
./scripts/open-database.sh docker
# Or get connection string for GUI tools
./scripts/open-database.sh url
Option 2: Direct psql Command
# If PostgreSQL is running locally
PGPASSWORD=cmdb-dev psql -h localhost -p 5432 -U cmdb -d cmdb
Option 3: Via Docker
# Connect to PostgreSQL container
docker exec -it $(docker ps | grep postgres | awk '{print $1}') psql -U cmdb -d cmdb
Connection Details
From docker-compose.yml:
- Host: localhost (or
postgresif connecting from Docker network) - Port: 5432
- Database: cmdb
- User: cmdb
- Password: cmdb-dev
Connection String:
postgresql://cmdb:cmdb-dev@localhost:5432/cmdb
GUI Tools
pgAdmin (Free, Web-based)
- Download from: https://www.pgadmin.org/download/
- Add new server with connection details above
- Browse tables and run queries
DBeaver (Free, Cross-platform)
- Download from: https://dbeaver.io/download/
- Create new PostgreSQL connection
- Use connection string or individual fields
TablePlus (macOS, Paid but has free tier)
- Download from: https://tableplus.com/
- Create new PostgreSQL connection
- Enter connection details
DataGrip (JetBrains, Paid)
- Part of JetBrains IDEs or standalone
- Create new PostgreSQL data source
- Use connection string
Useful SQL Commands
Once connected, try these commands:
-- List all tables
\dt
-- Describe a table structure
\d users
\d classifications
\d cache_objects
-- View all users
SELECT * FROM users;
-- View classifications
SELECT * FROM classifications ORDER BY created_at DESC LIMIT 10;
-- View cached objects
SELECT object_key, object_type, updated_at FROM cache_objects ORDER BY updated_at DESC LIMIT 20;
-- Count records per table
SELECT
'users' as table_name, COUNT(*) as count FROM users
UNION ALL
SELECT
'classifications', COUNT(*) FROM classifications
UNION ALL
SELECT
'cache_objects', COUNT(*) FROM cache_objects;
-- View user settings
SELECT u.username, u.email, us.ai_provider, us.ai_enabled
FROM users u
LEFT JOIN user_settings us ON u.id = us.user_id;
Environment Variables
If you're using environment variables instead of Docker:
# Check your .env file for:
DATABASE_URL=postgresql://cmdb:cmdb-dev@localhost:5432/cmdb
# or
DATABASE_TYPE=postgres
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_NAME=cmdb
DATABASE_USER=cmdb
DATABASE_PASSWORD=cmdb-dev
Troubleshooting
Database not running
# Start PostgreSQL container
docker-compose up -d postgres
# Check if it's running
docker ps | grep postgres
Connection refused
- Make sure PostgreSQL container is running
- Check if port 5432 is already in use
- Verify connection details match docker-compose.yml
Permission denied
- Verify username and password match docker-compose.yml
- Check if user has access to the database