Add table and crud
This commit is contained in:
parent
78257df3ef
commit
c8f8fb2aa3
@ -0,0 +1,27 @@
|
||||
"""Create latest_s3_block table
|
||||
|
||||
Revision ID: ce116d0badc8
|
||||
Revises: 5c5375de15fd
|
||||
Create Date: 2022-01-31 23:36:34.971594
|
||||
|
||||
"""
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = "ce116d0badc8"
|
||||
down_revision = "5c5375de15fd"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_table(
|
||||
"latest_s3_block",
|
||||
sa.Column("block_number", sa.Numeric, nullable=False),
|
||||
sa.Column("updated_at", sa.TIMESTAMP, server_default=sa.func.now()),
|
||||
)
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_table("latest_s3_block")
|
25
mev_inspect/crud/latest_s3_block.py
Normal file
25
mev_inspect/crud/latest_s3_block.py
Normal file
@ -0,0 +1,25 @@
|
||||
from typing import Optional
|
||||
|
||||
|
||||
def find_latest_s3_block(db_session) -> Optional[int]:
|
||||
result = db_session.execute(
|
||||
"SELECT block_number FROM latest_s3_block LIMIT 1"
|
||||
).one_or_none()
|
||||
if result is None:
|
||||
return None
|
||||
else:
|
||||
return int(result[0])
|
||||
|
||||
|
||||
def update_latest_s3_block(db_session, block_number) -> None:
|
||||
db_session.execute(
|
||||
"""
|
||||
UPDATE latest_s3_block
|
||||
SET block_number = :block_number, updated_at = current_timestamp;
|
||||
INSERT INTO latest_s3_block
|
||||
(block_number, updated_at)
|
||||
SELECT :block_number, current_timestamp
|
||||
WHERE NOT EXISTS (SELECT 1 FROM latest_s3_blocks);
|
||||
""",
|
||||
params={"block_number": block_number},
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user