From aff9e76a4cc36a5401348d115ac7e1d2be910d55 Mon Sep 17 00:00:00 2001 From: Mootfrost Date: Tue, 15 Apr 2025 18:18:25 +0300 Subject: [PATCH] Fix id overflow --- .../934c5c1d1f4a_id_from_int_to_bigint.py | 40 +++++++++++++++++++ .../9b7a211cc587_id_from_int_to_bigint.py | 40 +++++++++++++++++++ app/models/track.py | 2 +- app/models/user.py | 3 +- 4 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 alembic/versions/934c5c1d1f4a_id_from_int_to_bigint.py create mode 100644 alembic/versions/9b7a211cc587_id_from_int_to_bigint.py diff --git a/alembic/versions/934c5c1d1f4a_id_from_int_to_bigint.py b/alembic/versions/934c5c1d1f4a_id_from_int_to_bigint.py new file mode 100644 index 0000000..890a96c --- /dev/null +++ b/alembic/versions/934c5c1d1f4a_id_from_int_to_bigint.py @@ -0,0 +1,40 @@ +"""id from int to bigint + +Revision ID: 934c5c1d1f4a +Revises: 9f96b664be50 +Create Date: 2025-04-15 18:14:14.644341 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '934c5c1d1f4a' +down_revision: Union[str, None] = '9f96b664be50' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('tracks', 'id', + existing_type=sa.INTEGER(), + type_=sa.BigInteger(), + existing_nullable=False, + autoincrement=True) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('tracks', 'id', + existing_type=sa.BigInteger(), + type_=sa.INTEGER(), + existing_nullable=False, + autoincrement=True) + # ### end Alembic commands ### diff --git a/alembic/versions/9b7a211cc587_id_from_int_to_bigint.py b/alembic/versions/9b7a211cc587_id_from_int_to_bigint.py new file mode 100644 index 0000000..35335c3 --- /dev/null +++ b/alembic/versions/9b7a211cc587_id_from_int_to_bigint.py @@ -0,0 +1,40 @@ +"""id from int to bigint + +Revision ID: 9b7a211cc587 +Revises: 934c5c1d1f4a +Create Date: 2025-04-15 18:17:57.302668 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '9b7a211cc587' +down_revision: Union[str, None] = '934c5c1d1f4a' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'id', + existing_type=sa.INTEGER(), + type_=sa.BigInteger(), + existing_nullable=False, + autoincrement=True) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'id', + existing_type=sa.BigInteger(), + type_=sa.INTEGER(), + existing_nullable=False, + autoincrement=True) + # ### end Alembic commands ### diff --git a/app/models/track.py b/app/models/track.py index 7e07d9c..dc15efa 100644 --- a/app/models/track.py +++ b/app/models/track.py @@ -7,7 +7,7 @@ from sqlalchemy import BigInteger, LargeBinary, Integer, JSON class Track(Base): __tablename__ = 'tracks' - id: Mapped[int] = mapped_column(primary_key=True) + id: Mapped[int] = mapped_column(BigInteger, primary_key=True) telegram_id: Mapped[Optional[int]] = mapped_column(BigInteger) telegram_access_hash: Mapped[Optional[int]] = mapped_column(BigInteger) diff --git a/app/models/user.py b/app/models/user.py index f5d5b21..64d210e 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -3,11 +3,12 @@ from typing import Optional from app.models import Base from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy import JSON +from sqlalchemy import BigInteger class User(Base): __tablename__ = 'users' - id: Mapped[int] = mapped_column(primary_key=True) + id: Mapped[int] = mapped_column(BigInteger, primary_key=True) spotify_auth: Mapped[dict] = mapped_column(JSON, default={}) ymusic_auth: Mapped[dict] = mapped_column(JSON, default={})