- 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
187 lines
3.8 KiB
Markdown
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;
|
|
"
|
|
```
|