diff --git a/app/migrations/versions/1ea8d34d6232_added_user_model.py b/app/migrations/versions/1ea8d34d6232_added_user_model.py new file mode 100644 index 0000000..36e1a91 --- /dev/null +++ b/app/migrations/versions/1ea8d34d6232_added_user_model.py @@ -0,0 +1,42 @@ +"""Added User model + +Revision ID: 1ea8d34d6232 +Revises: +Create Date: 2024-03-22 00:57:44.526995 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision: str = '1ea8d34d6232' +down_revision: Union[str, None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('users', + sa.Column('telegram_id', sa.BigInteger(), nullable=False), + sa.Column('username', sa.String(length=32), nullable=False), + sa.Column('age', sa.SmallInteger(), nullable=False), + sa.Column('bio', sa.String(length=100), nullable=True), + sa.Column('sex', sa.String(length=6), nullable=True), + sa.Column('country', sa.Text(), nullable=False), + sa.Column('city', sa.Text(), nullable=False), + sa.PrimaryKeyConstraint('telegram_id'), + sa.UniqueConstraint('username') + ) + op.create_index(op.f('ix_users_telegram_id'), 'users', ['telegram_id'], unique=True) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index(op.f('ix_users_telegram_id'), table_name='users') + op.drop_table('users') + # ### end Alembic commands ### diff --git a/app/migrations/versions/2ed063a74f39_added_user_model.py b/app/migrations/versions/2ed063a74f39_added_user_model.py deleted file mode 100644 index 556adaa..0000000 --- a/app/migrations/versions/2ed063a74f39_added_user_model.py +++ /dev/null @@ -1,46 +0,0 @@ -"""Added user model - -Revision ID: 2ed063a74f39 -Revises: -Create Date: 2024-03-21 21:40:05.789793 - -""" - -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision: str = '2ed063a74f39' -down_revision: Union[str, None] = None -branch_labels: Union[str, Sequence[str], None] = None -depends_on: Union[str, Sequence[str], None] = None - - -def upgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - op.create_table( - 'users', - sa.Column('telegram_id', sa.BigInteger(), nullable=False), - sa.Column('username', sa.String(length=32), nullable=False), - sa.Column('age', sa.SmallInteger(), nullable=False), - sa.Column('bio', sa.String(length=100), nullable=True), - sa.Column('sex', sa.String(length=6), nullable=True), - sa.Column('country', sa.Text(), nullable=False), - sa.Column('city', sa.Text(), nullable=False), - sa.PrimaryKeyConstraint('telegram_id'), - sa.UniqueConstraint('username'), - ) - op.create_index( - op.f('ix_users_telegram_id'), 'users', ['telegram_id'], unique=False - ) - # ### end Alembic commands ### - - -def downgrade() -> None: - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_users_telegram_id'), table_name='users') - op.drop_table('users') - # ### end Alembic commands ### diff --git a/app/models/user.py b/app/models/user.py index b57f018..f4337d6 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -17,7 +17,13 @@ Base: Any = declarative_base() class User(Base): __tablename__ = "users" - telegram_id = sa.Column(sa.BigInteger, primary_key=True, index=True) + telegram_id = sa.Column( + sa.BigInteger, + primary_key=True, + index=True, + unique=True, + nullable=False, + ) username = sa.Column(sa.String(32), nullable=False, unique=True) age = sa.Column(sa.SmallInteger, nullable=False) bio = sa.Column(sa.String(100), nullable=True) diff --git a/app/states/user.py b/app/states/user.py index 80ea91e..e3eb128 100644 --- a/app/states/user.py +++ b/app/states/user.py @@ -13,9 +13,9 @@ class UserRegistration(StatesGroup): class UserAltering(StatesGroup): - column = State() - value = State() profile_message_id = State() input_message_id = State() error_message_id = State() successfully = State() + column = State() + value = State()