Skip to content

Commit 3793f41

Browse files
committed
feat(schema): rename paging_token columns to TOID
1 parent 4563718 commit 3793f41

17 files changed

+134
-49
lines changed

sc_audit/db_schema/distribution.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class DistributionTxBase(MappedAsDataclass):
1818
sender: Mapped[strkey]
1919
recipient: Mapped[strkey]
2020
carbon_amount: Mapped[kgdecimal]
21-
paging_token: Mapped[bigintpk]
21+
toid: Mapped[bigintpk]
2222

2323

2424
class DistributionTx(DistributionTxBase, ScBase):

sc_audit/db_schema/mint.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class MintedBlockBase(MappedAsDataclass, kw_only=True):
4646
sub_account_name: Mapped[VerraSubAccountName]
4747
vintage_start: Mapped[dt.date]
4848
vintage_end: Mapped[dt.date]
49-
paging_token: Mapped[bigint]
49+
toid: Mapped[bigint]
5050

5151

5252
class MintedBlock(MintedBlockBase, ScBase):
@@ -102,4 +102,4 @@ def _credits_remaining_on_date_expression(cls, on_date: dt.date) -> SQLColumnExp
102102

103103

104104
idx_created_at = Index("idx_block_created_at", MintedBlock.created_at)
105-
idx_toid = Index("idx_block_toid", MintedBlock.paging_token.desc(), unique=True)
105+
idx_toid = Index("idx_block_toid", MintedBlock.toid.desc(), unique=True)

sc_audit/db_schema/sink.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class SinkingTxBase(MappedAsDataclass, kw_only=True):
3939
vcs_project_id: Mapped[int] = mapped_column(ForeignKey("vcs_projects.id"))
4040
memo_type: Mapped[MemoType]
4141
memo_value: Mapped[str | None] = mapped_column(String(64))
42-
paging_token: Mapped[bigint]
42+
toid: Mapped[bigint]
4343

4444

4545
class SinkingTx(SinkingTxBase, ScBase):
@@ -73,6 +73,6 @@ def as_dict(self):
7373

7474

7575
idx_created_at = Index("idx_stx_created_at", SinkingTx.created_at.desc())
76-
idx_toid = Index("idx_stx_toid", SinkingTx.paging_token.desc(), unique=True)
76+
idx_toid = Index("idx_stx_toid", SinkingTx.toid.desc(), unique=True)
7777
idx_funder = Index("idx_stx_funder", SinkingTx.funder)
7878
idx_recipient = Index("idx_stx_recipient", SinkingTx.recipient)

sc_audit/loader/distribution_outflows.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def load_distribution_txs(cursor: int=settings.FIRST_DIST_CURSOR) -> int:
3131
sender=payment['from'],
3232
recipient=payment['to'],
3333
carbon_amount=Decimal(payment['amount']),
34-
paging_token=payment['paging_token'],
34+
toid=payment['paging_token'],
3535
)
3636
)
3737

sc_audit/loader/get_latest.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,36 +38,36 @@ def get_latest_attr(*models: CoreModelName) -> LatestAttr | list[LatestAttr]:
3838
latest_attrs[i] = latest_retirement_date
3939
elif model == 'sink_tx':
4040
latest_sink_tx_cursor = session.scalar(
41-
select(SinkingTx.paging_token)
41+
select(SinkingTx.toid)
4242
.where(SinkingTx.contract_id.is_(None))
43-
.order_by(SinkingTx.paging_token.desc())
43+
.order_by(SinkingTx.toid.desc())
4444
)
45-
latest_attrs[i] = increment_paging_token(latest_sink_tx_cursor) or settings.FIRST_SINK_CURSOR
45+
latest_attrs[i] = increment_toid(latest_sink_tx_cursor) or settings.FIRST_SINK_CURSOR
4646
elif model == 'sink_call':
4747
latest_sink_call_cursor = session.scalar(
48-
select(SinkingTx.paging_token)
48+
select(SinkingTx.toid)
4949
.where(SinkingTx.contract_id.is_not(None))
50-
.order_by(SinkingTx.paging_token.desc())
50+
.order_by(SinkingTx.toid.desc())
5151
)
5252
latest_attrs[i] = latest_sink_call_cursor or settings.FIRST_SINK_CURSOR
5353
elif model == 'mint_tx':
5454
latest_mint_tx_cursor = session.scalar(
55-
select(MintedBlock.paging_token).order_by(MintedBlock.paging_token.desc())
55+
select(MintedBlock.toid).order_by(MintedBlock.toid.desc())
5656
)
57-
latest_attrs[i] = increment_paging_token(latest_mint_tx_cursor) or settings.FIRST_MINT_CURSOR
57+
latest_attrs[i] = increment_toid(latest_mint_tx_cursor) or settings.FIRST_MINT_CURSOR
5858
elif model == 'dist_tx':
5959
latest_dist_tx_cursor = session.scalar(
60-
select(DistributionTx.paging_token).order_by(DistributionTx.paging_token.desc())
60+
select(DistributionTx.toid).order_by(DistributionTx.toid.desc())
6161
)
62-
latest_attrs[i] = increment_paging_token(latest_dist_tx_cursor) or settings.FIRST_DIST_CURSOR
62+
latest_attrs[i] = increment_toid(latest_dist_tx_cursor) or settings.FIRST_DIST_CURSOR
6363

6464
if len(latest_attrs) == 1:
6565
return latest_attrs[0]
6666
else:
6767
return latest_attrs
6868

6969

70-
def increment_paging_token(cursor: int | None) -> int | None:
70+
def increment_toid(cursor: int | None) -> int | None:
7171
if cursor:
7272
toid = TOID.from_int64(cursor)
7373
toid.increment_operation_order()

sc_audit/loader/minted_blocks.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ def load_minted_blocks(cursor: int=settings.FIRST_MINT_CURSOR) -> int:
6262
sub_account_name=carbon_pool[serial_hash]['sub_account_name'], # type: ignore
6363
vintage_start=serial_number.vintage_start_date,
6464
vintage_end=serial_number.vintage_end_date,
65-
paging_token=mint_tx['paging_token']
65+
toid=mint_tx['paging_token']
6666
)
6767
pristine_blocks.append(block)
6868
else:
6969
retired_blocks.append(mint_tx)
7070

7171
if retired_blocks:
7272
latest_loaded_block: MintedBlock | None = session.scalars(
73-
select(MintedBlock).order_by(MintedBlock.paging_token.desc())
73+
select(MintedBlock).order_by(MintedBlock.toid.desc())
7474
).first()
7575
# select only retirements without retired_from_block relations
7676
retirements: Sequence[Retirement] = session.scalars(
@@ -150,7 +150,7 @@ def reconstruct_blocks(
150150
sub_account_name=sub_account_name,
151151
vintage_start=reconstructed_serial.vintage_start_date,
152152
vintage_end=reconstructed_serial.vintage_end_date,
153-
paging_token=mint_tx['paging_token']
153+
toid=mint_tx['paging_token']
154154
)
155155
latest_block = block
156156
reconstructed_blocks.append(block)

sc_audit/loader/sink_events.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def load_sink_events(cursor: int=settings.FIRST_SINK_CURSOR) -> int:
6262
vcs_project_id=vcs_project_id,
6363
memo_type='text' if memo else 'none',
6464
memo_value=memo,
65-
paging_token=event_toid.to_int64(),
65+
toid=event_toid.to_int64(),
6666
)
6767
)
6868

sc_audit/loader/sink_invocations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def load_sink_invocations(cursor: int=settings.FIRST_SINK_CURSOR) -> int:
4141
vcs_project_id=vcs_project_id,
4242
memo_type='text' if memo else 'none',
4343
memo_value=memo,
44-
paging_token=sink_invoke.toid,
44+
toid=sink_invoke.toid,
4545
)
4646
)
4747

sc_audit/loader/sinking_txs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def load_sinking_txs(cursor: int=settings.FIRST_SINK_CURSOR) -> int:
6060
vcs_project_id=vcs_project_id,
6161
memo_type=memo_type,
6262
memo_value=memo_value,
63-
paging_token=sink_tx['paging_token'],
63+
toid=sink_tx['paging_token'],
6464
)
6565
)
6666

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
"""rename paging_token columns to TOID
2+
3+
Revision ID: 371cdad348d3
4+
Revises: 52e5e68af772
5+
Create Date: 2025-11-11 12:18:35.680184
6+
7+
"""
8+
from typing import Sequence
9+
10+
from alembic import context, op
11+
import sqlalchemy as sa
12+
13+
14+
# revision identifiers, used by Alembic.
15+
revision: str = '371cdad348d3'
16+
down_revision: str | None = '52e5e68af772'
17+
branch_labels: str | Sequence[str] | None = None
18+
depends_on: str | Sequence[str] | None = None
19+
20+
21+
def upgrade() -> None:
22+
# turn off FK constraints for SQLite to allow table recreation
23+
dialect_name = context.get_context().dialect.name
24+
if dialect_name == 'sqlite':
25+
op.execute("PRAGMA foreign_keys=OFF")
26+
27+
with op.batch_alter_table('distribution_txs', schema=None) as batch_op:
28+
batch_op.alter_column('paging_token', new_column_name='toid')
29+
30+
with op.batch_alter_table('minted_blocks', schema=None) as batch_op:
31+
batch_op.alter_column('paging_token', new_column_name='toid')
32+
batch_op.drop_index(batch_op.f('idx_block_toid'))
33+
34+
op.create_index('idx_block_toid', 'minted_blocks', [sa.literal_column('toid DESC')], unique=True)
35+
36+
with op.batch_alter_table('sinking_txs', schema=None) as batch_op:
37+
batch_op.alter_column('paging_token', new_column_name='toid')
38+
batch_op.drop_index(batch_op.f('idx_stx_toid'))
39+
40+
op.create_index('idx_stx_toid', 'sinking_txs', [sa.literal_column('toid DESC')], unique=True)
41+
42+
with op.batch_alter_table('test_distribution_txs', schema=None) as batch_op:
43+
batch_op.alter_column('paging_token', new_column_name='toid')
44+
45+
with op.batch_alter_table('test_minted_blocks', schema=None) as batch_op:
46+
batch_op.alter_column('paging_token', new_column_name='toid')
47+
48+
with op.batch_alter_table('test_sinking_txs', schema=None) as batch_op:
49+
batch_op.alter_column('paging_token', new_column_name='toid')
50+
51+
if dialect_name == 'sqlite':
52+
op.execute("PRAGMA foreign_keys=ON")
53+
54+
55+
def downgrade() -> None:
56+
dialect_name = context.get_context().dialect.name
57+
if dialect_name == 'sqlite':
58+
op.execute("PRAGMA foreign_keys=OFF")
59+
60+
with op.batch_alter_table('test_sinking_txs', schema=None) as batch_op:
61+
batch_op.alter_column('toid', new_column_name='paging_token')
62+
63+
with op.batch_alter_table('test_minted_blocks', schema=None) as batch_op:
64+
batch_op.alter_column('toid', new_column_name='paging_token')
65+
66+
with op.batch_alter_table('test_distribution_txs', schema=None) as batch_op:
67+
batch_op.alter_column('toid', new_column_name='paging_token')
68+
69+
with op.batch_alter_table('sinking_txs', schema=None) as batch_op:
70+
batch_op.alter_column('toid', new_column_name='paging_token')
71+
batch_op.drop_index('idx_stx_toid')
72+
73+
op.create_index(op.f('idx_stx_toid'), 'sinking_txs', [sa.literal_column('paging_token DESC')], unique=True)
74+
75+
with op.batch_alter_table('minted_blocks', schema=None) as batch_op:
76+
batch_op.alter_column('toid', new_column_name='paging_token')
77+
batch_op.drop_index('idx_block_toid')
78+
79+
op.create_index(op.f('idx_block_toid'), 'minted_blocks', [sa.literal_column('paging_token DESC')], unique=True)
80+
81+
with op.batch_alter_table('distribution_txs', schema=None) as batch_op:
82+
batch_op.alter_column('toid', new_column_name='paging_token')
83+
84+
if dialect_name == 'sqlite':
85+
op.execute("PRAGMA foreign_keys=ON")

0 commit comments

Comments
 (0)