Skip to main content
Glama
git-checklist-database-init.md8.43 kB
# Git 저장 전 데이터베이스 초기화 체크리스트 Git에 변경사항을 커밋하기 전에 데이터베이스 초기화 스크립트가 최신 스키마를 반영하고 있는지 확인하는 체크리스트입니다. ## 🚨 중요사항 **Git 커밋 전에 반드시 확인해야 할 사항들:** - 새로운 테이블이 추가된 경우 - 스키마가 변경된 경우 - 협업 기능이나 다른 기능이 추가된 경우 ## 📋 체크리스트 ### ✅ 1. 스키마 파일 확인 - [ ] `src/database/schema.sql` - 기본 스키마 파일 - [ ] `src/database/collaboration-schema.sql` - 협업 테이블 스키마 - [ ] 두 스키마가 모두 최신 상태인지 확인 ### ✅ 2. init-database.js 업데이트 확인 #### 현재 문제점: ```javascript // ❌ 현재: 기본 스키마만 적용 const SCHEMA_PATH = join(__dirname, 'src', 'database', 'schema.sql'); ``` #### 필요한 수정: ```javascript // ✅ 수정 필요: 협업 스키마도 함께 적용 const MAIN_SCHEMA_PATH = join(__dirname, 'src', 'database', 'schema.sql'); const COLLABORATION_SCHEMA_PATH = join(__dirname, 'src', 'database', 'collaboration-schema.sql'); ``` ### ✅ 3. 협업 테이블 포함 확인 다음 협업 테이블들이 `init-database.js`에서 생성되는지 확인: - [ ] `agent_sessions` - Claude 세션 관리 - [ ] `collaboration_messages` - 실시간 메시징 - [ ] `supervisor_interventions` - 슈퍼바이저 개입 - [ ] `task_progress_snapshots` - 작업 진행상황 - [ ] `approval_workflows` - 승인 워크플로 ### ✅ 4. 데이터 카운트 확인 `init-database.js`의 데이터 카운트 섹션에 협업 테이블 추가: ```javascript // 현재 누락된 테이블들 db.get('SELECT COUNT(*) as count FROM agent_sessions'), db.get('SELECT COUNT(*) as count FROM collaboration_messages'), db.get('SELECT COUNT(*) as count FROM supervisor_interventions'), db.get('SELECT COUNT(*) as count FROM task_progress_snapshots'), db.get('SELECT COUNT(*) as count FROM approval_workflows') ``` ### ✅ 5. 테스트 스크립트 실행 Git 커밋 전에 다음 명령어들을 실행해서 확인: ```bash # 1. 기존 데이터베이스 백업 (있는 경우) cp data/workflow.db data/workflow-backup-$(date +%Y%m%d-%H%M%S).db # 2. 테스트용 새 데이터베이스 생성 rm -f data/workflow-test.db # 3. 수정된 init-database.js로 테스트 데이터베이스 초기화 node init-database.js # 4. 협업 테이블 존재 확인 echo "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%collaboration%' OR name LIKE '%agent_%' OR name LIKE '%approval_%';" | sqlite3 data/workflow.db # 5. 예상 결과: # agent_sessions # collaboration_messages # supervisor_interventions # task_progress_snapshots # approval_workflows ``` ## 🔧 수정해야 할 파일들 ### 1. init-database.js 수정 필요사항 #### A. 스키마 파일 경로 수정 ```javascript // 기존 코드 const SCHEMA_PATH = join(__dirname, 'src', 'database', 'schema.sql'); // 수정된 코드 const MAIN_SCHEMA_PATH = join(__dirname, 'src', 'database', 'schema.sql'); const COLLABORATION_SCHEMA_PATH = join(__dirname, 'src', 'database', 'collaboration-schema.sql'); ``` #### B. 스키마 적용 로직 수정 ```javascript // 기존 코드 console.log('📄 Reading schema file...'); const schemaSQL = readFileSync(SCHEMA_PATH, 'utf8'); // 수정된 코드 console.log('📄 Reading schema files...'); const mainSchemaSQL = readFileSync(MAIN_SCHEMA_PATH, 'utf8'); const collaborationSchemaSQL = readFileSync(COLLABORATION_SCHEMA_PATH, 'utf8'); const combinedSQL = mainSchemaSQL + '\n\n' + collaborationSchemaSQL; ``` #### C. 데이터 카운트 섹션 확장 ```javascript // 기존 코드에 추가 const counts = await Promise.all([ db.get('SELECT COUNT(*) as count FROM prds'), db.get('SELECT COUNT(*) as count FROM tasks'), db.get('SELECT COUNT(*) as count FROM plans'), db.get('SELECT COUNT(*) as count FROM documents'), db.get('SELECT COUNT(*) as count FROM test_cases'), db.get('SELECT COUNT(*) as count FROM test_executions'), // 협업 테이블 추가 db.get('SELECT COUNT(*) as count FROM agent_sessions'), db.get('SELECT COUNT(*) as count FROM collaboration_messages'), db.get('SELECT COUNT(*) as count FROM supervisor_interventions'), db.get('SELECT COUNT(*) as count FROM task_progress_snapshots'), db.get('SELECT COUNT(*) as count FROM approval_workflows') ]); const countLabels = [ 'PRDs', 'Tasks', 'Plans', 'Documents', 'Test Cases', 'Test Executions', 'Agent Sessions', 'Collaboration Messages', 'Supervisor Interventions', 'Task Progress', 'Approval Workflows' ]; ``` #### D. 버전 정보 업데이트 ```javascript // 파일 상단 주석 수정 /** * WorkflowMCP Database Initialization Script * Creates and initializes SQLite database with current schema * Version: 3.1.0 (Latest with Collaboration Features + Test Management + Documents + Designs) */ ``` ## 🚀 자동화 스크립트 다음 스크립트를 실행해서 자동으로 확인: ```bash #!/bin/bash # check-database-init.sh echo "🔍 데이터베이스 초기화 체크 시작..." # 1. 필수 파일 존재 확인 echo "📁 필수 파일 확인..." if [ ! -f "src/database/schema.sql" ]; then echo "❌ schema.sql 파일이 없습니다" exit 1 fi if [ ! -f "src/database/collaboration-schema.sql" ]; then echo "❌ collaboration-schema.sql 파일이 없습니다" exit 1 fi if [ ! -f "init-database.js" ]; then echo "❌ init-database.js 파일이 없습니다" exit 1 fi echo "✅ 모든 필수 파일 존재" # 2. 협업 스키마 포함 확인 echo "🤝 협업 스키마 포함 여부 확인..." if grep -q "collaboration-schema" init-database.js; then echo "✅ init-database.js에 협업 스키마 포함됨" else echo "❌ init-database.js에 협업 스키마 누락됨" echo " 수정이 필요합니다!" exit 1 fi # 3. 테스트 데이터베이스 생성 echo "🧪 테스트 데이터베이스 생성..." rm -f data/workflow-test.db DB_PATH="data/workflow-test.db" node init-database.js > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "✅ 테스트 데이터베이스 생성 성공" else echo "❌ 테스트 데이터베이스 생성 실패" exit 1 fi # 4. 협업 테이블 존재 확인 echo "📊 협업 테이블 존재 확인..." collaboration_tables=$(echo "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND (name LIKE '%collaboration%' OR name LIKE '%agent_%' OR name LIKE '%approval_%' OR name LIKE '%progress%');" | sqlite3 data/workflow-test.db) if [ "$collaboration_tables" -ge "5" ]; then echo "✅ 협업 테이블 $collaboration_tables 개 존재" else echo "❌ 협업 테이블 부족: $collaboration_tables 개 (최소 5개 필요)" exit 1 fi # 5. 정리 rm -f data/workflow-test.db echo "🎉 데이터베이스 초기화 체크 완료!" echo " Git 커밋 준비 완료 ✅" ``` ## 📋 Git 커밋 전 최종 체크리스트 **커밋하기 전에 다음을 확인하세요:** ```bash # 1. 체크 스크립트 실행 chmod +x check-database-init.sh ./check-database-init.sh # 2. 수동 확인 node init-database.js # 3. 협업 테이블 존재 확인 echo "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;" | sqlite3 data/workflow.db | grep -E "(agent_|collaboration_|supervisor_|approval_|progress_)" # 4. 예상 출력: # agent_sessions # approval_workflows # collaboration_messages # supervisor_interventions # task_progress_snapshots ``` **모든 체크가 통과하면 Git 커밋 진행:** ```bash git add . git commit -m "feat: add collaboration system with complete database schema - Add Claude-to-Claude collaboration features - Include all collaboration tables in init-database.js - Update database schema with agent sessions, messaging, interventions - Add comprehensive documentation and testing guides" ``` ## ⚠️ 주의사항 1. **기존 데이터베이스가 있는 경우**: 백업 후 진행 2. **스키마 변경 시**: 마이그레이션 스크립트도 함께 업데이트 3. **테스트 환경**: 프로덕션 환경과 동일한 스키마 확인 4. **문서 업데이트**: 스키마 변경 시 관련 문서도 업데이트 --- **이 체크리스트를 따라하면 Git 커밋 후에도 새로운 사용자가 올바른 데이터베이스 구조로 시작할 수 있습니다!**

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/foswmine/workflow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server