codenuk_backend_mine/DEPLOYMENT_FIX_GUIDE.md
2025-10-10 08:56:39 +05:30

172 lines
4.4 KiB
Markdown

# 🚀 Microservices Deployment Fix Guide
## 🔍 Issues Identified
### 1. N8N Service Failure (Exit Code 1)
- **Root Cause**: Database schema conflicts and timing issues
- **Symptoms**: `pipeline_n8n` container exits with code 1
### 2. PostgreSQL Constraint Violations
- **Root Cause**: Duplicate type/table creation attempts
- **Error**: `duplicate key value violates unique constraint "pg_type_typname_nsp_index"`
## 🛠️ Solutions Implemented
### 1. Enhanced N8N Configuration
- Added dedicated `n8n` schema
- Improved health checks with longer start period
- Added restart policy and better logging
- Ensured proper dependency ordering
### 2. Database Schema Cleanup
- Created schema conflict resolution script
- Proper table ownership and permissions
- Separated n8n tables into dedicated schema
### 3. Deployment Orchestration
- Staged service startup to prevent race conditions
- Proper dependency management
- Volume cleanup for fresh starts
## 🚀 Deployment Steps
### Option 1: Automated Fix (Recommended)
```bash
cd /home/tech4biz/Desktop/Projectsnew/CODENUK1/codenuk-backend-live
./scripts/fix-deployment-issues.sh
```
### Option 2: Manual Step-by-Step
#### Step 1: Clean Environment
```bash
# Stop all services
docker-compose down --volumes --remove-orphans
# Clean Docker system
docker system prune -f
docker volume prune -f
# Remove 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
```
#### Step 2: Start Core Infrastructure
```bash
# Start databases first
docker-compose up -d postgres redis mongodb rabbitmq
# Wait for readiness
sleep 30
```
#### Step 3: Fix Database Schema
```bash
# Apply schema fixes
docker exec -i pipeline_postgres psql -U pipeline_admin -d dev_pipeline < databases/scripts/fix-schema-conflicts.sql
```
#### Step 4: Run Migrations
```bash
docker-compose up migrations
```
#### Step 5: Start Services in Stages
```bash
# Stage 1: Core services
docker-compose up -d n8n api-gateway requirement-processor
# Stage 2: Generation services
docker-compose up -d tech-stack-selector architecture-designer code-generator
# Stage 3: User services
docker-compose up -d user-auth template-manager
# Stage 4: Additional services
docker-compose up -d ai-mockup-service git-integration web-dashboard
```
## 🏥 Health Verification
### Check Service Status
```bash
docker-compose ps
```
### Check N8N Specifically
```bash
# Check n8n logs
docker-compose logs n8n
# Test n8n endpoint
curl -f http://localhost:5678/healthz
```
### Check Database
```bash
# Connect to database
docker exec -it pipeline_postgres psql -U pipeline_admin -d dev_pipeline
# List schemas
\dn
# Check n8n tables
\dt n8n.*
```
## 🔧 Troubleshooting
### If N8N Still Fails
1. Check logs: `docker-compose logs n8n`
2. Verify database connection: `docker exec pipeline_postgres pg_isready`
3. Check n8n schema exists: `docker exec -it pipeline_postgres psql -U pipeline_admin -d dev_pipeline -c "\dn"`
### If Database Conflicts Persist
1. Run schema cleanup again: `docker exec -i pipeline_postgres psql -U pipeline_admin -d dev_pipeline < databases/scripts/fix-schema-conflicts.sql`
2. Check for remaining conflicts: `docker-compose logs postgres | grep ERROR`
### If Services Won't Start
1. Check dependencies: `docker-compose config --services`
2. Start services individually: `docker-compose up [service-name]`
3. Check resource usage: `docker stats`
## 📊 Expected Results
After successful deployment:
- ✅ All services should show "Up" status
- ✅ N8N accessible at http://localhost:5678
- ✅ No database constraint errors
- ✅ All health checks passing
## 🎯 Key Improvements Made
1. **N8N Configuration**:
- Dedicated schema isolation
- Better dependency management
- Improved health checks
- Restart policies
2. **Database Management**:
- Schema conflict resolution
- Proper table ownership
- Clean migration process
3. **Deployment Process**:
- Staged service startup
- Volume cleanup
- Dependency ordering
## 📞 Support
If issues persist:
1. Check service logs: `docker-compose logs [service-name]`
2. Verify network connectivity: `docker network ls`
3. Check resource usage: `docker system df`
4. Review configuration: `docker-compose config`
---
**Last Updated**: September 30, 2025
**Build Number**: 24+ (Fixed)
**Status**: ✅ Ready for Deployment