Store trace addresses as arrays

This commit is contained in:
Luke Van Seters 2021-08-06 13:05:47 -04:00
parent f9b3c82d2d
commit 002ef76ecc
3 changed files with 54 additions and 4 deletions

View File

@ -0,0 +1,50 @@
"""Change trace addresses to array types
Revision ID: 7eec417a4f3e
Revises: 9d8c69b3dccb
Create Date: 2021-08-06 15:58:04.556762
"""
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision = "7eec417a4f3e"
down_revision = "9d8c69b3dccb"
branch_labels = None
depends_on = None
def upgrade():
op.drop_constraint("swaps_pkey", "swaps")
op.drop_column("swaps", "trace_address")
op.add_column("swaps", sa.Column("trace_address", sa.ARRAY(sa.Integer)))
op.create_primary_key("swaps_pkey", "swaps", ["transaction_hash", "trace_address"])
op.drop_constraint("classified_traces_pkey", "classified_traces")
op.drop_column("classified_traces", "trace_address")
op.add_column("classified_traces", sa.Column("trace_address", sa.ARRAY(sa.Integer)))
op.create_primary_key(
"classified_traces_pkey",
"classified_traces",
["transaction_hash", "trace_address"],
)
def downgrade():
op.drop_constraint("swaps_pkey", "swaps")
op.drop_column("swaps", "trace_address")
op.add_column("swaps", sa.Column("trace_address", sa.String))
op.create_primary_key("swaps_pkey", "swaps", ["transaction_hash", "trace_address"])
op.drop_constraint("classified_traces_pkey", "classified_traces")
op.drop_column("classified_traces", "trace_address")
op.add_column("classified_traces", sa.Column("trace_address", sa.String))
op.create_primary_key(
"classified_traces_pkey",
"classified_traces",
["transaction_hash", "trace_address"],
)

View File

@ -1,4 +1,4 @@
from sqlalchemy import Column, JSON, Numeric, String from sqlalchemy import Column, JSON, Numeric, String, ARRAY, Integer
from .base import Base from .base import Base
@ -10,7 +10,7 @@ class ClassifiedTraceModel(Base):
block_number = Column(Numeric, nullable=False) block_number = Column(Numeric, nullable=False)
classification = Column(String, nullable=False) classification = Column(String, nullable=False)
trace_type = Column(String, nullable=False) trace_type = Column(String, nullable=False)
trace_address = Column(String, nullable=False) trace_address = Column(ARRAY(Integer), nullable=False)
protocol = Column(String, nullable=True) protocol = Column(String, nullable=True)
abi_name = Column(String, nullable=True) abi_name = Column(String, nullable=True)
function_name = Column(String, nullable=True) function_name = Column(String, nullable=True)

View File

@ -1,4 +1,4 @@
from sqlalchemy import Column, Numeric, String from sqlalchemy import Column, Numeric, String, ARRAY, Integer
from .base import Base from .base import Base
@ -9,7 +9,7 @@ class SwapModel(Base):
abi_name = Column(String, nullable=False) abi_name = Column(String, nullable=False)
transaction_hash = Column(String, primary_key=True) transaction_hash = Column(String, primary_key=True)
block_number = Column(Numeric, nullable=False) block_number = Column(Numeric, nullable=False)
trace_address = Column(String, primary_key=True) trace_address = Column(ARRAY(Integer), nullable=False)
protocol = Column(String, nullable=True) protocol = Column(String, nullable=True)
pool_address = Column(String, nullable=False) pool_address = Column(String, nullable=False)
from_address = Column(String, nullable=False) from_address = Column(String, nullable=False)