Prerequisites
Schema Initialization
VulnTrack uses Prisma to manage the database schema.Generate Prisma Client
Generate the Prisma client based on This creates the TypeScript client for database queries.
prisma/schema.prisma:Push schema to database
Initialize the database with the current schema:This creates all tables, relations, and indexes defined in the Prisma schema.
db push is recommended for development. For production, use migrations (see below).Database Schema
VulnTrack’s schema includes the following core models:User Management
- User - User accounts with role-based access control (ADMIN, ANALYST, VIEWER)
- Team - Multi-tenant team workspaces
- Invitation - Time-limited invitation tokens for secure onboarding
Vulnerability Tracking
- Vulnerability - Core vulnerability records with CVE data
- DreadScore - DREAD risk assessment scores
- StrideScore - STRIDE threat modeling flags
- Comment - Collaboration threads on vulnerabilities
Audit & Notifications
- AuditLog - Comprehensive activity tracking
- Notification - In-app notification system
prisma/schema.prisma in your installation.
Migrations
For production deployments, use Prisma migrations instead ofdb push.
Package.json Scripts
VulnTrack includes these database-related scripts:npm install.Seeding Data
To populate the database with initial data:Check for seed script
If a This typically creates:
prisma/seed.ts or seed.js file exists:- An initial admin user
- Sample vulnerability data
- Default team configuration
Backup & Restore
Backup Database
Restore Database
Troubleshooting
Connection refused errors
Connection refused errors
Symptoms:
Error: connect ECONNREFUSED 127.0.0.1:5432Solutions:- Verify PostgreSQL is running:
pg_isready - Check port availability:
lsof -i :5432 - Ensure
DATABASE_URLmatches your PostgreSQL configuration
Authentication failed
Authentication failed
Symptoms:
Error: password authentication failed for userSolutions:- Verify credentials in
DATABASE_URL - Check
pg_hba.confauthentication method (should bemd5orscram-sha-256) - Reset user password in PostgreSQL:
ALTER USER vulntrack_user WITH PASSWORD 'new_password';
Migration conflicts
Migration conflicts
Symptoms:
Error: Migration failed to applySolutions:- Reset migration history:
npx prisma migrate resolve --applied <migration_name> - For development, reset database:
npx prisma migrate reset(WARNING: deletes all data) - For production, manually resolve conflicts and mark as applied
Schema drift detected
Schema drift detected
Symptoms:
Warning: Database schema is out of syncSolutions:- Development: Run
npx prisma db pushor create a new migration - Production: Always use
prisma migrate deployto apply migrations