Files
ColaFlow/scripts/init-db.sql
Yaojia Wang 54476eb43e 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>
2025-11-04 23:41:53 +01:00

30 lines
1.3 KiB
SQL

-- ============================================
-- ColaFlow Database Initialization Script
-- This script runs automatically when PostgreSQL container starts for the first time
-- File: /docker-entrypoint-initdb.d/01-init-db.sql
-- ============================================
-- Enable required extensions
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- UUID generation functions
CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- Full-text search support (trigram matching)
CREATE EXTENSION IF NOT EXISTS "btree_gin"; -- GIN index optimization for multi-column queries
-- Grant all privileges on database
GRANT ALL PRIVILEGES ON DATABASE colaflow TO colaflow;
-- Output confirmation
DO $$
BEGIN
RAISE NOTICE '========================================';
RAISE NOTICE 'ColaFlow Database Initialized Successfully!';
RAISE NOTICE '========================================';
RAISE NOTICE 'Extensions installed:';
RAISE NOTICE ' - uuid-ossp (UUID generation)';
RAISE NOTICE ' - pg_trgm (Full-text search)';
RAISE NOTICE ' - btree_gin (Index optimization)';
RAISE NOTICE '';
RAISE NOTICE 'Next: EF Core migrations will create schema';
RAISE NOTICE 'Next: Seed data will populate demo accounts';
RAISE NOTICE '========================================';
END $$;