HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
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')