Files
ALwrity/backend/debug_schema.py
ajaysi 9713af0c1b fix: Add missing columns to daily_workflow_plans table
- Added generation_mode column (VARCHAR, default: 'llm_generation')
- Added committee_agent_count column (INTEGER, default: 0)
- Added fallback_used column (BOOLEAN, default: 0)

Also fixed:
- Imported daily_workflow_models in services/database.py to ensure models are registered
- Added _create_daily_workflow_tables() to database setup
- Created migration script to add columns to 35 existing databases
- Fixed WorkflowError type in frontend to use constructor for proper 'name' property

This resolves the 'no such column' sqlite3 errors when accessing the today-workflow API.
2026-03-09 16:25:56 +05:30

58 lines
1.7 KiB
Python

#!/usr/bin/env python
"""Debug script to check database schema."""
import os
import sys
sys.path.insert(0, '.')
# Set up logging
os.environ['ALWRITY_VERBOSE'] = 'true'
from models.enhanced_strategy_models import Base
from models.daily_workflow_models import DailyWorkflowPlan, DailyWorkflowTask, TaskHistory
# Check what tables are registered with EnhancedStrategyBase
print("Tables registered with EnhancedStrategyBase:")
for table_name in Base.metadata.tables:
print(f" - {table_name}")
if 'daily' in table_name:
table = Base.metadata.tables[table_name]
print(f" Columns: {[col.name for col in table.columns]}")
# Now create the tables
from services.database import get_engine_for_user
test_user_id = "debug_test_user_12345"
engine = get_engine_for_user(test_user_id)
print(f"\nCreating tables for test user: {test_user_id}")
Base.metadata.create_all(bind=engine)
print("\n✅ Tables created successfully!")
# Verify the tables exist
import sqlite3
from services.database import get_user_db_path
db_path = get_user_db_path(test_user_id)
print(f"\nDatabase path: {db_path}")
if os.path.exists(db_path):
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
tables = [row[0] for row in cursor.fetchall()]
print(f"Tables in database: {tables}")
if 'daily_workflow_plans' in tables:
cursor.execute("PRAGMA table_info(daily_workflow_plans)")
columns = cursor.fetchall()
col_names = [col[1] for col in columns]
print(f"\nColumns in daily_workflow_plans:")
for col in columns:
print(f" - {col[1]} ({col[2]})")
conn.close()
else:
print(f"❌ Database not found at {db_path}")