Files
ALwrity/backend/scripts/run_business_info_migration.py
Om-Singh1808 aeb7751d48 feat: Complete onboarding system with No Website functionality
- Add No Website button to Step 2 with business description form
- Implement onboarding cache service for browser-side data storage
- Add business info database models and API endpoints
- Update API key manager to save keys to .env file immediately
- Add database migration scripts for business info table
- Create reset onboarding script for fresh starts
- Implement hybrid data storage (API keys to backend, other data to cache)
- Add comprehensive business info CRUD operations
- Include database table creation and migration tools
2025-09-24 15:12:21 +05:30

101 lines
3.2 KiB
Python
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
"""
Migration script to create the user_business_info table.
This script should be run once to set up the database schema.
"""
import os
import sys
import sqlite3
from pathlib import Path
from loguru import logger
# Add the backend directory to the Python path
backend_dir = Path(__file__).parent.parent
sys.path.insert(0, str(backend_dir))
def run_migration():
"""Run the business info table migration."""
try:
# Get the database path
db_path = backend_dir / "alwrity.db"
logger.info(f"🔄 Starting business info table migration...")
logger.info(f"📁 Database path: {db_path}")
# Check if database exists
if not db_path.exists():
logger.warning(f"⚠️ Database file not found at {db_path}")
logger.info("📝 Creating new database file...")
# Read the migration SQL
migration_file = backend_dir / "database" / "migrations" / "add_business_info_table.sql"
if not migration_file.exists():
logger.error(f"❌ Migration file not found: {migration_file}")
return False
with open(migration_file, 'r') as f:
migration_sql = f.read()
logger.info("📋 Migration SQL loaded successfully")
# Connect to database and run migration
conn = sqlite3.connect(str(db_path))
cursor = conn.cursor()
# Check if table already exists
cursor.execute("""
SELECT name FROM sqlite_master
WHERE type='table' AND name='user_business_info'
""")
if cursor.fetchone():
logger.info(" Table 'user_business_info' already exists, skipping migration")
conn.close()
return True
# Execute the migration
cursor.executescript(migration_sql)
conn.commit()
# Verify the table was created
cursor.execute("""
SELECT name FROM sqlite_master
WHERE type='table' AND name='user_business_info'
""")
if cursor.fetchone():
logger.success("✅ Migration completed successfully!")
logger.info("📊 Table 'user_business_info' created with the following structure:")
# Show table structure
cursor.execute("PRAGMA table_info(user_business_info)")
columns = cursor.fetchall()
for col in columns:
logger.info(f" - {col[1]} ({col[2]}) {'NOT NULL' if col[3] else 'NULL'}")
conn.close()
return True
else:
logger.error("❌ Migration failed - table was not created")
conn.close()
return False
except Exception as e:
logger.error(f"❌ Migration failed with error: {str(e)}")
return False
if __name__ == "__main__":
logger.info("🚀 Starting ALwrity Business Info Migration")
success = run_migration()
if success:
logger.success("🎉 Migration completed successfully!")
sys.exit(0)
else:
logger.error("💥 Migration failed!")
sys.exit(1)