File: //home/arjun/projects/buyercall/buyercall/migrations/versions/ef15f7df4053_add_request_log_table.py
"""Add request log table
Revision ID: ef15f7df4053
Revises: c545309758a2
Create Date: 2023-07-10 14:40:15.578286
"""
# revision identifiers, used by Alembic.
revision = 'ef15f7df4053'
down_revision = 'c545309758a2'
branch_labels = None
depends_on = None
from sqlalchemy.dialects import postgresql
from datetime import datetime
from alembic import op
import sqlalchemy as sa
def upgrade():
op.create_table(
'request_log',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('request_id', sa.String(length=255), nullable=True),
sa.Column('user_id', sa.Integer(), nullable=True),
sa.Column('partnership_id', sa.Integer(), nullable=True),
sa.Column('partnership_account_id', sa.Integer(), nullable=True),
sa.Column('partnership_name', sa.String(length=255), nullable=True),
sa.Column('partnership_account_name', sa.String(length=255), nullable=True),
sa.Column('post_data', sa.Text(), nullable=True, server_default=''),
sa.Column('role', sa.String(length=255), nullable=True),
sa.Column('request_type', sa.String(length=255), nullable=True),
sa.Column('current_url', sa.String(length=255), nullable=True),
sa.Column('host', sa.String(length=255), nullable=True),
sa.Column('accept', sa.String(length=255), nullable=True),
sa.Column('user_agent', sa.String(length=255), nullable=True),
sa.Column('security_client_values', sa.JSON(), nullable=True, server_default='{}'),
sa.Column('referer', sa.String(length=512), nullable=True),
sa.Column('encoding', sa.String(length=255), nullable=True),
sa.Column('language', sa.String(length=255), nullable=True),
sa.Column('cookies', sa.JSON(), nullable=True, server_default='{}'),
sa.Column('remote_ip_address', sa.String(length=64), nullable=True),
sa.Column('remote_port', sa.String(length=64), nullable=True),
sa.Column('method', sa.String(length=64), nullable=True),
sa.Column('path_info', sa.String(length=255), nullable=True),
sa.Column('query_string', sa.Text(), nullable=True, server_default=''),
sa.Column('server_name', sa.String(length=255), nullable=True),
sa.Column('server_port', sa.Integer(), nullable=True),
sa.Column('is_secure', sa.Boolean(), nullable=True),
sa.Column('is_xhr', sa.Boolean(), nullable=True),
sa.Column('content_length', sa.Integer(), nullable=True),
sa.Column('is_json', sa.Boolean(), nullable=True),
sa.Column('response_code', sa.Integer(), nullable=True),
sa.Column('curl', sa.Text(), nullable=True, server_default=''),
sa.Column('error', sa.Text(), nullable=True, server_default=''),
sa.Column('response_text', sa.Text(), nullable=True, server_default=''),
sa.Column('is_authenticated', sa.Boolean(), nullable=True),
sa.Column('created_on', sa.DateTime(), nullable=True, default=datetime.utcnow),
sa.Column('updated_on', sa.DateTime(), nullable=True, default=datetime.utcnow, onupdate=datetime.utcnow),
sa.PrimaryKeyConstraint('id', name='request_log_pkey'),
sa.ForeignKeyConstraint(['user_id'], ['users.id'],
name='request_log_user_id_fkey',
onupdate='CASCADE', ondelete='CASCADE'),
sa.Index('idx_request_log_user_id', 'user_id'),
# ip based details
sa.Column('country', sa.String(length=64), nullable=True),
sa.Column('state', sa.String(length=64), nullable=True),
sa.Column('city', sa.String(length=64), nullable=True),
sa.Column('zip_code', sa.String(length=64), nullable=True),
sa.Column('reverse', sa.String(length=255), nullable=True)
)
def downgrade():
op.drop_constraint('request_log_pkey', 'request_log', type_='primary')
op.drop_constraint('request_log_user_id_fkey', 'request_log', type='foreignkey')
op.drop_index('idx_request_log_user_id', table_name='request_log')
op.drop_table('request_log')