All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
"""
|
|
Database Migration: Add WhatsApp Message Tracking
|
|
==================================================
|
|
|
|
This migration adds the whatsapp_messages table for tracking
|
|
message delivery status from Meta WhatsApp Cloud API webhooks.
|
|
|
|
Run this migration:
|
|
python add_whatsapp_messages_table.py
|
|
"""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Add backend to path
|
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
|
|
from database import engine, Base, SessionLocal
|
|
from models import WhatsAppMessage
|
|
import logging
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def run_migration():
|
|
"""Create the whatsapp_messages table"""
|
|
logger.info("Starting migration: Add whatsapp_messages table")
|
|
|
|
try:
|
|
# Create only the WhatsAppMessage table
|
|
logger.info("Creating whatsapp_messages table...")
|
|
WhatsAppMessage.__table__.create(engine, checkfirst=True)
|
|
logger.info("✓ whatsapp_messages table created successfully")
|
|
|
|
# Verify table exists
|
|
db = SessionLocal()
|
|
try:
|
|
result = db.execute("SELECT COUNT(*) FROM whatsapp_messages")
|
|
count = result.scalar()
|
|
logger.info(f"✓ Table verified: {count} messages in database")
|
|
finally:
|
|
db.close()
|
|
|
|
logger.info("Migration completed successfully!")
|
|
|
|
except Exception as e:
|
|
logger.error(f"✗ Migration failed: {e}")
|
|
raise
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print("="*80)
|
|
print("WhatsApp Messages Table Migration")
|
|
print("="*80)
|
|
print("\nThis will create the whatsapp_messages table for tracking")
|
|
print("delivery status of WhatsApp messages sent through Meta Cloud API.")
|
|
print()
|
|
|
|
response = input("Proceed with migration? (yes/no): ").strip().lower()
|
|
if response in ['yes', 'y']:
|
|
run_migration()
|
|
else:
|
|
print("Migration cancelled.")
|