46 lines
2.1 KiB
Python
46 lines
2.1 KiB
Python
"""add_audit_log_extra_columns
|
|
|
|
Revision ID: f9cf173f48f9
|
|
Revises: 73b754d5b2c5
|
|
Create Date: 2026-03-31 13:57:11.328101
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
from sqlalchemy.dialects import postgresql
|
|
|
|
revision: str = 'f9cf173f48f9'
|
|
down_revision: Union[str, Sequence[str], None] = '73b754d5b2c5'
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""Upgrade schema."""
|
|
op.add_column('audit_logs', sa.Column('entity_id', sa.String(length=255), nullable=True))
|
|
op.add_column('audit_logs', sa.Column('entity_name', sa.String(length=255), nullable=True))
|
|
op.add_column('audit_logs', sa.Column('performed_by_id', sa.UUID(), nullable=True))
|
|
op.add_column('audit_logs', sa.Column('performed_by_email', sa.String(length=255), nullable=True))
|
|
op.add_column('audit_logs', sa.Column('ip_address', sa.String(length=45), nullable=True))
|
|
op.add_column('audit_logs', sa.Column('old_values', postgresql.JSONB(astext_type=sa.Text()), nullable=True))
|
|
op.add_column('audit_logs', sa.Column('new_values', postgresql.JSONB(astext_type=sa.Text()), nullable=True))
|
|
op.create_index(op.f('ix_audit_logs_action_type'), 'audit_logs', ['action_type'], unique=False)
|
|
op.create_index(op.f('ix_audit_logs_created_at'), 'audit_logs', ['created_at'], unique=False)
|
|
op.create_index(op.f('ix_audit_logs_performed_by_email'), 'audit_logs', ['performed_by_email'], unique=False)
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""Downgrade schema."""
|
|
op.drop_index(op.f('ix_audit_logs_performed_by_email'), table_name='audit_logs')
|
|
op.drop_index(op.f('ix_audit_logs_created_at'), table_name='audit_logs')
|
|
op.drop_index(op.f('ix_audit_logs_action_type'), table_name='audit_logs')
|
|
op.drop_column('audit_logs', 'new_values')
|
|
op.drop_column('audit_logs', 'old_values')
|
|
op.drop_column('audit_logs', 'ip_address')
|
|
op.drop_column('audit_logs', 'performed_by_email')
|
|
op.drop_column('audit_logs', 'performed_by_id')
|
|
op.drop_column('audit_logs', 'entity_name')
|
|
op.drop_column('audit_logs', 'entity_id')
|