Files
cmdb-insight/docs/LOCAL-POSTGRES-RESET.md
Bert Hausmans f4399a8e4e Consolidate documentation and update backend services
- Reorganize docs into 'Core deployment guides' and 'Setup and configuration' subdirectories
- Consolidate redundant documentation files (ACR, pipelines, deployment guides)
- Add documentation consolidation plan
- Update backend database factory and logger services
- Update migration script and docker-compose configurations
- Add PostgreSQL setup script
2026-01-22 22:45:54 +01:00

3.8 KiB

PostgreSQL Database Reset (Lokaal)

Quick Reset

Om de PostgreSQL database volledig te resetten (green field simulatie):

# Option 1: Gebruik het reset script
./scripts/reset-postgres.sh

Handmatige Reset

Als je het handmatig wilt doen:

Stap 1: Stop Containers

docker-compose down

Stap 2: Verwijder PostgreSQL Volume

# Check volumes
docker volume ls | grep postgres

# Verwijder volume (dit verwijdert ALLE data!)
docker volume rm cmdb-insight_postgres_data

Let op: Dit verwijdert alle data permanent!

Stap 3: Start Containers Opnieuw

docker-compose up -d postgres

Stap 4: Wacht tot PostgreSQL Ready is

# Check status
docker-compose ps

# Test connection
docker-compose exec postgres pg_isready -U cmdb

Stap 5: Maak Database Aan (Optioneel)

De applicatie maakt de database automatisch aan, maar je kunt het ook handmatig doen:

docker-compose exec postgres psql -U cmdb -c "CREATE DATABASE cmdb_insight;"

Note: The application uses a single database for all data. All tables (CMDB cache, classification history, and session state) are stored in the same database.

Verificatie

Na reset, check of alles werkt:

# Connect to database
docker-compose exec postgres psql -U cmdb -d cmdb_insight

# Check tables (zou leeg moeten zijn)
\dt

# Exit
\q

Wat Gebeurt Er Bij Reset?

  1. Alle data wordt verwijderd - Alle tabellen, objecten, relaties
  2. Volume wordt verwijderd - PostgreSQL data directory wordt gewist
  3. Nieuwe database - Bij volgende start is het een schone database
  4. Schema wordt automatisch aangemaakt - Bij eerste start van backend

Na Reset

  1. Start backend:

    docker-compose up -d backend
    
  2. Check logs:

    docker-compose logs -f backend
    

    Je zou moeten zien:

    • "NormalizedCacheStore: Database schema initialized"
    • "SchemaDiscovery: Schema discovery complete"
  3. Schema genereren (als nodig):

    docker-compose exec backend npm run generate-schema
    
  4. Start sync:

    • Via UI: Settings → Cache Management → Full Sync
    • Of via API: POST /api/cache/sync

Troubleshooting

Volume niet gevonden

# Check alle volumes
docker volume ls

# Zoek naar postgres volume
docker volume ls | grep postgres

Database bestaat al

Als je een fout krijgt dat de database al bestaat:

# Drop en recreate
docker-compose exec postgres psql -U cmdb -c "DROP DATABASE IF EXISTS cmdb_insight;"
docker-compose exec postgres psql -U cmdb -c "CREATE DATABASE cmdb_insight;"

Connection Issues

# Check of PostgreSQL draait
docker-compose ps postgres

# Check logs
docker-compose logs postgres

# Test connection
docker-compose exec postgres pg_isready -U cmdb

Environment Variables

Zorg dat je .env bestand correct is:

DATABASE_TYPE=postgres
DATABASE_HOST=postgres
DATABASE_PORT=5432
DATABASE_NAME=cmdb_insight
DATABASE_USER=cmdb
DATABASE_PASSWORD=cmdb-dev

Of gebruik connection string:

DATABASE_TYPE=postgres
DATABASE_URL=postgresql://cmdb:cmdb-dev@postgres:5432/cmdb_insight

Snelle Commando's

# Alles in één keer
docker-compose down && \
docker volume rm cmdb-insight_postgres_data && \
docker-compose up -d postgres && \
sleep 5 && \
docker-compose exec postgres pg_isready -U cmdb

# Check database size (na sync)
docker-compose exec postgres psql -U cmdb -d cmdb_insight -c "
  SELECT 
    pg_size_pretty(pg_database_size('cmdb_insight')) as size;
"

# List all tables
docker-compose exec postgres psql -U cmdb -d cmdb_insight -c "\dt"

# Count objects
docker-compose exec postgres psql -U cmdb -d cmdb_insight -c "
  SELECT object_type_name, COUNT(*) 
  FROM objects 
  GROUP BY object_type_name;
"