157 lines
4.1 KiB
Bash
Executable File
157 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
echo "🔧 Fixing Microservices Deployment Issues"
|
|
echo "========================================"
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Function to print colored output
|
|
print_status() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# 1. Stop all services
|
|
print_status "Stopping all services..."
|
|
docker-compose down --volumes --remove-orphans
|
|
|
|
# 2. Clean up Docker system
|
|
print_status "Cleaning up Docker system..."
|
|
docker system prune -f
|
|
docker volume prune -f
|
|
|
|
# 3. Remove problematic volumes
|
|
print_status "Removing problematic volumes..."
|
|
docker volume rm codenuk-backend-live_postgres_data 2>/dev/null || true
|
|
docker volume rm codenuk-backend-live_n8n_data 2>/dev/null || true
|
|
docker volume rm codenuk-backend-live_migration_state 2>/dev/null || true
|
|
|
|
# 4. Clean database schema conflicts
|
|
print_status "Preparing clean database environment..."
|
|
cat > /tmp/clean_db.sql << 'EOF'
|
|
-- Clean up any existing schema conflicts
|
|
DROP TYPE IF EXISTS claude_recommendations CASCADE;
|
|
DROP TABLE IF EXISTS claude_recommendations CASCADE;
|
|
|
|
-- Clean up n8n related tables if they exist
|
|
DROP TABLE IF EXISTS n8n_credentials_entity CASCADE;
|
|
DROP TABLE IF EXISTS n8n_execution_entity CASCADE;
|
|
DROP TABLE IF EXISTS n8n_workflow_entity CASCADE;
|
|
DROP TABLE IF EXISTS n8n_webhook_entity CASCADE;
|
|
DROP TABLE IF EXISTS n8n_tag_entity CASCADE;
|
|
DROP TABLE IF EXISTS n8n_workflows_tags CASCADE;
|
|
|
|
-- Reset any conflicting sequences
|
|
DROP SEQUENCE IF EXISTS claude_recommendations_id_seq CASCADE;
|
|
EOF
|
|
|
|
# 5. Start only core infrastructure first
|
|
print_status "Starting core infrastructure services..."
|
|
docker-compose up -d postgres redis mongodb rabbitmq
|
|
|
|
# 6. Wait for databases to be ready
|
|
print_status "Waiting for databases to be ready..."
|
|
sleep 30
|
|
|
|
# Check if postgres is ready
|
|
print_status "Checking PostgreSQL readiness..."
|
|
for i in {1..30}; do
|
|
if docker exec pipeline_postgres pg_isready -U pipeline_admin -d dev_pipeline; then
|
|
print_status "PostgreSQL is ready!"
|
|
break
|
|
fi
|
|
print_warning "Waiting for PostgreSQL... ($i/30)"
|
|
sleep 2
|
|
done
|
|
|
|
# 7. Clean the database
|
|
print_status "Cleaning database schema conflicts..."
|
|
docker exec -i pipeline_postgres psql -U pipeline_admin -d dev_pipeline < /tmp/clean_db.sql 2>/dev/null || true
|
|
|
|
# 8. Run migrations
|
|
print_status "Running database migrations..."
|
|
docker-compose up migrations
|
|
|
|
# Wait for migrations to complete
|
|
print_status "Waiting for migrations to complete..."
|
|
sleep 10
|
|
|
|
# 9. Start n8n with proper initialization
|
|
print_status "Starting n8n service..."
|
|
docker-compose up -d n8n
|
|
|
|
# Wait for n8n to initialize
|
|
print_status "Waiting for n8n to initialize..."
|
|
sleep 20
|
|
|
|
# 10. Start remaining services in batches
|
|
print_status "Starting core services..."
|
|
docker-compose up -d \
|
|
api-gateway \
|
|
requirement-processor \
|
|
tech-stack-selector \
|
|
architecture-designer
|
|
|
|
sleep 15
|
|
|
|
print_status "Starting generation services..."
|
|
docker-compose up -d \
|
|
code-generator \
|
|
test-generator \
|
|
deployment-manager
|
|
|
|
sleep 15
|
|
|
|
print_status "Starting user services..."
|
|
docker-compose up -d \
|
|
user-auth \
|
|
template-manager \
|
|
unison
|
|
|
|
sleep 15
|
|
|
|
print_status "Starting additional services..."
|
|
docker-compose up -d \
|
|
ai-mockup-service \
|
|
git-integration \
|
|
self-improving-generator \
|
|
web-dashboard
|
|
|
|
# 11. Final health check
|
|
print_status "Performing final health check..."
|
|
sleep 30
|
|
|
|
echo ""
|
|
echo "🏥 Service Health Check"
|
|
echo "======================"
|
|
|
|
# Check service status
|
|
docker-compose ps
|
|
|
|
echo ""
|
|
print_status "Deployment fix completed!"
|
|
print_warning "Please check the service status above."
|
|
print_warning "If any services are still failing, check their logs with:"
|
|
print_warning "docker-compose logs [service-name]"
|
|
|
|
# Clean up temp file
|
|
rm -f /tmp/clean_db.sql
|
|
|
|
echo ""
|
|
print_status "🎯 Next Steps:"
|
|
echo "1. Check service logs: docker-compose logs -f"
|
|
echo "2. Verify n8n is accessible: http://localhost:5678"
|
|
echo "3. Test API endpoints for health checks"
|
|
echo "4. Monitor for any remaining issues"
|