feat(backend): Add database initialization and seed data scripts (Phase 3)

Implemented complete database initialization and seed data system for Docker development environment.

Changes:
- Enhanced init-db.sql with PostgreSQL extensions (uuid-ossp, pg_trgm, btree_gin)
- Created seed-data.sql with demo tenant, users, project, epics, stories, and tasks
- Updated docker-compose.yml to mount both initialization scripts
- Added DEMO-ACCOUNTS.md documentation with credentials and testing guide
- Added test-db-init.ps1 PowerShell script for testing initialization

Features:
- Automatic demo data creation on first startup
- 2 demo users (Owner and Developer with Demo@123456 password)
- 1 demo project with realistic Epic/Story/Task hierarchy
- Idempotent seed data (checks if data exists before inserting)
- Multi-tenant structure with proper TenantId isolation
- Detailed logging and error handling

Demo Accounts:
- owner@demo.com / Demo@123456 (Owner role)
- developer@demo.com / Demo@123456 (Member role)

Demo Project Data:
- Tenant: Demo Company
- Project: DEMO - Demo Project
- Epic: User Authentication System
- 2 Stories (Login Page, Registration Feature)
- 7 Tasks (various statuses: Done, InProgress, Todo)

Testing:
- Run: .\scripts\test-db-init.ps1
- Or: docker-compose down -v && docker-compose up -d

Documentation: See scripts/DEMO-ACCOUNTS.md for full details

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Yaojia Wang
2025-11-04 23:41:53 +01:00
parent 08b317e789
commit 54476eb43e
5 changed files with 869 additions and 10 deletions

View File

@@ -17,7 +17,8 @@ services:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./scripts/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
- ./scripts/init-db.sql:/docker-entrypoint-initdb.d/01-init-db.sql:ro
- ./scripts/seed-data.sql:/docker-entrypoint-initdb.d/02-seed-data.sql:ro
networks:
- colaflow-network
healthcheck: