Files
igny8/docs/wp/DEPLOYMENT-GUIDE-WP-FIXES.md
2025-12-03 18:12:01 +05:00

6.1 KiB

Quick Deployment Guide - WordPress Integration Fixes

Date: November 30, 2025

Pre-Deployment Checklist

  • Backup database
  • Backup WordPress site
  • Stop Celery workers
  • Note current content count in "Published" status

Step 1: Apply Database Migration

cd /data/app/igny8/backend
source .venv/bin/activate
python manage.py migrate integration

Expected output:

Running migrations:
  Applying integration.0002_add_sync_event_model... OK

Verify migration:

python manage.py showmigrations integration

Should show:

integration
 [X] 0001_initial
 [X] 0002_add_sync_event_model

Step 2: Restart Backend Services

If using systemd:

sudo systemctl restart igny8-backend
sudo systemctl restart igny8-celery-worker
sudo systemctl status igny8-backend
sudo systemctl status igny8-celery-worker

If using Docker:

cd /data/app/igny8
docker-compose restart backend
docker-compose restart celery
docker-compose logs -f celery  # Check for errors

If using screen/tmux:

# Stop Celery worker (Ctrl+C in screen session)
# Start again:
celery -A igny8_core worker --loglevel=info

Step 3: Update WordPress Plugin (if needed)

Option A: If plugin files were updated via git:

# On server
cd /data/app/igny8/igny8-wp-plugin
git pull origin main

# Copy to WordPress plugins directory
cp -r /data/app/igny8/igny8-wp-plugin /var/www/html/wp-content/plugins/igny8-bridge

Option B: Manual file transfer: Upload these modified files to WordPress:

  • igny8-wp-plugin/sync/igny8-to-wp.php
  • igny8-wp-plugin/sync/post-sync.php

No WordPress settings changes needed!


Step 4: Verify Everything Works

Test 1: Check Database Table

cd /data/app/igny8/backend
source .venv/bin/activate
python manage.py dbshell
-- Check table exists
\dt igny8_sync_events

-- Check initial structure
SELECT COUNT(*) FROM igny8_sync_events;

Test 2: Publish Test Content

  1. Go to IGNY8 Review page
  2. Click "Publish" on any content
  3. Wait 10 seconds
  4. Go to Published page
  5. Expected: WP Status shows "Published" (green)

Test 3: Check Debug Status Page

  1. Go to Settings → Debug Status
  2. Select WordPress integration
  3. Expected: See sync event for the test publish

Test 4: Check WordPress

  1. Go to WordPress admin → Posts
  2. Find the published post
  3. Expected: Post exists with all fields (categories, tags, SEO, image)

Test 5: Test Status Sync from WordPress

  1. In WordPress, change post from "Published" to "Draft"
  2. Wait 5 seconds
  3. Go to IGNY8 Published page
  4. Expected: WP Status shows "Draft" (gray)
  5. Expected: Debug Status shows webhook event

Step 5: Monitor for Issues

Watch Celery logs:

# Docker
docker-compose logs -f celery | grep "publish_content_to_wordpress"

# Systemd
sudo journalctl -u igny8-celery-worker -f

# Manual
# Just check the screen/tmux session

Look for:

  • "Successfully published content X to WordPress post Y"
  • "Content model updated: external_id=..."
  • "Status webhook sent for content..."

Red flags:

  • "Failed to publish"
  • "Exception during publish"
  • "Status webhook failed"

Watch WordPress error log:

tail -f /var/www/html/wp-content/debug.log

Look for:

  • "IGNY8: Status webhook sent for content..."
  • "IGNY8: WordPress post created"

Red flags:

  • "IGNY8: Status webhook failed"
  • "IGNY8: NOT AUTHENTICATED"

Rollback Plan (if needed)

If migration breaks:

cd /data/app/igny8/backend
source .venv/bin/activate
python manage.py migrate integration 0001_initial

If Celery errors:

# Restore old task file from git
cd /data/app/igny8/backend
git checkout HEAD~1 igny8_core/tasks/wordpress_publishing.py
sudo systemctl restart igny8-celery-worker

If WordPress errors:

# Restore old plugin files from git
cd /data/app/igny8/igny8-wp-plugin
git checkout HEAD~1 sync/igny8-to-wp.php sync/post-sync.php
# Copy to WordPress
cp -r /data/app/igny8/igny8-wp-plugin /var/www/html/wp-content/plugins/igny8-bridge

Common Issues & Fixes

Issue: "No module named 'SyncEvent'"

Cause: Migration not applied
Fix: Run python manage.py migrate integration

Issue: Celery task failing with "SyncEvent not found"

Cause: Celery running old code
Fix: sudo systemctl restart igny8-celery-worker

Issue: Webhook returns 404

Cause: URLs not registered
Fix: sudo systemctl restart igny8-backend

Issue: WordPress webhook not sending

Cause: API key not set or wrong
Fix: Check WordPress Settings → IGNY8 Bridge → API Key

Issue: Debug status shows no events

Cause: Database not created or migration failed
Fix: Check migration status, verify table exists


Performance Monitoring

Check SyncEvent table size:

SELECT COUNT(*), 
       pg_size_pretty(pg_total_relation_size('igny8_sync_events')) as size
FROM igny8_sync_events;

Check recent events:

SELECT event_type, COUNT(*), 
       AVG(duration_ms) as avg_duration,
       MAX(duration_ms) as max_duration
FROM igny8_sync_events
WHERE created_at > NOW() - INTERVAL '1 hour'
GROUP BY event_type;

Cleanup old events (optional):

-- Delete events older than 30 days
DELETE FROM igny8_sync_events WHERE created_at < NOW() - INTERVAL '30 days';

Success Metrics

After deployment, you should see:

  • 0 errors in Celery logs for publishing
  • 100% of published content has external_id set
  • All published content shows WP Status on Published page
  • Debug Status page shows real events for each publish
  • WordPress posts have all fields (categories, tags, images, SEO)
  • Status changes in WordPress sync back to IGNY8 within 5 seconds

Contact/Support

If you encounter issues:

  1. Check logs (Celery, Django, WordPress debug.log)
  2. Review troubleshooting section in main documentation
  3. Verify all services restarted after deployment
  4. Check network connectivity (IGNY8 ↔ WordPress)
  5. Verify API keys match on both sides

Good luck with deployment! 🚀