check_tables.py•2.48 kB
#!/usr/bin/env python3
"""
Script para verificar qué tablas existen en Supabase
"""
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent / 'src'))
from src.config import config
from supabase import create_client
def check_tables():
"""Verificar tablas disponibles en Supabase"""
print("🔍 Verificando tablas en Supabase...")
print("="*60)
client = create_client(config.SUPABASE_URL, config.SUPABASE_SERVICE_ROLE_KEY)
# Lista de tablas potenciales a verificar
tables_to_check = [
'fiscai_documents',
'documents',
'users',
'profiles',
'chat_history',
'messages',
'classrooms',
'fiscal_cases',
'user_contexts'
]
existing_tables = []
missing_tables = []
for table in tables_to_check:
try:
# Intentar hacer un SELECT con límite 0 para verificar existencia
result = client.table(table).select('*').limit(0).execute()
print(f"✅ {table:20} - EXISTE")
existing_tables.append(table)
# Obtener conteo
try:
count_result = client.table(table).select('id', count='exact').limit(1).execute()
count = count_result.count if hasattr(count_result, 'count') else '?'
print(f" └─ Registros: {count}")
except:
pass
except Exception as e:
error_msg = str(e)
if 'Could not find' in error_msg or 'PGRST' in error_msg:
print(f"❌ {table:20} - NO EXISTE")
missing_tables.append(table)
else:
print(f"⚠️ {table:20} - ERROR: {error_msg[:50]}")
print("\n" + "="*60)
print(f"📊 RESUMEN:")
print(f" Tablas existentes: {len(existing_tables)}")
print(f" Tablas faltantes: {len(missing_tables)}")
if existing_tables:
print(f"\n✅ Tablas disponibles para usar:")
for table in existing_tables:
print(f" - {table}")
if missing_tables:
print(f"\n❌ Tablas no disponibles:")
for table in missing_tables:
print(f" - {table}")
return existing_tables
if __name__ == "__main__":
try:
existing = check_tables()
except Exception as e:
print(f"\n❌ ERROR: {e}")
import traceback
traceback.print_exc()