codenuk_backend_mine/scripts/fix-requirement-processor-migration.sh
2025-10-03 10:57:44 +05:30

81 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# Fix Requirement Processor Migration Issue
# This script fixes the schema_migrations constraint issue
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
log() {
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
warn() {
echo -e "${YELLOW}[$(date +'%Y-%m-%d %H:%M:%S')] WARNING:${NC} $1"
}
error() {
echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')] ERROR:${NC} $1"
}
# Database connection settings
DB_HOST=${DB_HOST:-"localhost"}
DB_PORT=${DB_PORT:-"5432"}
DB_USER=${DB_USER:-"postgres"}
DB_NAME=${DB_NAME:-"dev_pipeline"}
DB_PASSWORD=${DB_PASSWORD:-"password"}
log "🔧 Fixing Requirement Processor Migration Issue"
log "=============================================="
# Check if we're in the right directory
if [ ! -f "docker-compose.yml" ]; then
error "Please run this script from the codenuk-backend-live directory"
exit 1
fi
log "📋 Step 1: Stopping the requirement-processor service"
docker compose stop requirement-processor || true
log "📋 Step 2: Cleaning up failed migration records"
PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" << 'EOF'
-- Remove any failed migration records for requirement-processor
DELETE FROM schema_migrations WHERE service = 'requirement-processor' OR version LIKE '%.sql';
-- Ensure the schema_migrations table has the correct structure
ALTER TABLE schema_migrations ALTER COLUMN service SET NOT NULL;
EOF
log "📋 Step 3: Restarting the requirement-processor service"
docker compose up -d requirement-processor
log "📋 Step 4: Waiting for service to be healthy"
sleep 10
# Check if the service is running
if docker compose ps requirement-processor | grep -q "Up"; then
log "✅ Requirement processor service is running"
else
error "❌ Requirement processor service failed to start"
docker compose logs requirement-processor
exit 1
fi
log "📋 Step 5: Verifying migration status"
PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" << 'EOF'
-- Check migration status
SELECT service, version, applied_at, description
FROM schema_migrations
WHERE service = 'requirement-processor'
ORDER BY applied_at;
EOF
log "✅ Migration fix completed!"
log "You can now restart the full deployment:"
log "docker compose up -d"