"""add_audit_logs_table Revision ID: a1b2c3d4e5f6 Revises: 13362e8c493a Create Date: 2026-02-12 10:00:00.000000 Registra el modelo AuditLog en Alembic. La tabla audit_logs ya existe en schema.sql, esta migraci├│n solo la registra en el control de versiones de Alembic. """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. revision = 'a1b2c3d4e5f6' down_revision = '13362e8c493a' branch_labels = None depends_on = None def upgrade(): """ Verificar que audit_logs existe y registrarla en Alembic. La tabla fue creada por schema.sql, esta migraci├│n solo verifica que exista y est├í disponible para usar. """ from sqlalchemy import inspect bind = op.get_bind() inspector = inspect(bind) tables = inspector.get_table_names() if 'audit_logs' in tables: print("Ô£à Tabla audit_logs encontrada (creada por schema.sql)") print("Ô£à Modelo AuditLog registrado en Alembic") # Verificar que tenga los ├¡ndices necesarios existing_indexes = [idx['name'] for idx in inspector.get_indexes('audit_logs')] missing_indexes = [] required_indexes = [ 'idx_audit_logs_tenant_id', 'idx_audit_logs_user_id', 'idx_audit_logs_action', 'idx_audit_logs_correlation_id', 'idx_audit_logs_created_at' ] for idx in required_indexes: if idx not in existing_indexes: missing_indexes.append(idx) if missing_indexes: print(f"ÔÜá´©Å ├ìndices faltantes: {', '.join(missing_indexes)}") print(" (Esto es normal si usaste schema.sql completo)") else: print("Ô£à Todos los ├¡ndices necesarios est├ín presentes") else: print("ÔÜá´©Å La tabla audit_logs NO existe") print(" Ejecuta: docker-compose exec -T postgres psql -U postgres -d servicemanager < db/schema.sql") print(" O crea la tabla manualmente desde schema.sql") # No crear la tabla aqu├¡ - debe venir de schema.sql para mantener consistencia raise Exception( "La tabla audit_logs no existe. " "Por favor ejecuta el schema.sql completo primero." ) def downgrade(): """ No eliminar la tabla - fue creada por schema.sql. Solo des-registrar de Alembic. """ print("Ôä╣´©Å Tabla audit_logs NO ser├í eliminada (creada por schema.sql)") print("Ô£à Modelo AuditLog des-registrado de Alembic")