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

187 lines
3.8 KiB
Markdown

# PostgreSQL Database Reset (Lokaal)
## Quick Reset
Om de PostgreSQL database volledig te resetten (green field simulatie):
```bash
# Option 1: Gebruik het reset script
./scripts/reset-postgres.sh
```
## Handmatige Reset
Als je het handmatig wilt doen:
### Stap 1: Stop Containers
```bash
docker-compose down
```
### Stap 2: Verwijder PostgreSQL Volume
```bash
# 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
```bash
docker-compose up -d postgres
```
### Stap 4: Wacht tot PostgreSQL Ready is
```bash
# 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:
```bash
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:
```bash
# 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:**
```bash
docker-compose up -d backend
```
2. **Check logs:**
```bash
docker-compose logs -f backend
```
Je zou moeten zien:
- "NormalizedCacheStore: Database schema initialized"
- "SchemaDiscovery: Schema discovery complete"
3. **Schema genereren (als nodig):**
```bash
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
```bash
# 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:
```bash
# 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
```bash
# 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:
```env
DATABASE_TYPE=postgres
DATABASE_HOST=postgres
DATABASE_PORT=5432
DATABASE_NAME=cmdb_insight
DATABASE_USER=cmdb
DATABASE_PASSWORD=cmdb-dev
```
Of gebruik connection string:
```env
DATABASE_TYPE=postgres
DATABASE_URL=postgresql://cmdb:cmdb-dev@postgres:5432/cmdb_insight
```
## Snelle Commando's
```bash
# 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;
"
```