remove models update from migrations (#80)

* add bot models update script

* add last question at field

* update README.md
This commit is contained in:
Dmitry Afanasyev
2024-01-08 21:33:35 +03:00
committed by GitHub
parent 7cbe7b7c50
commit 28895f3510
16 changed files with 191 additions and 145 deletions

View File

@@ -1,43 +0,0 @@
"""create chatgpt models
Revision ID: 0004_add_chatgpt_models
Revises: 0003_create_user_question_count_table
Create Date: 2025-10-05 20:44:05.414977
"""
from loguru import logger
from sqlalchemy import select, text
from constants import ChatGptModelsEnum
from core.bot.models.chatgpt import ChatGptModels
from infra.database.deps import get_sync_session
# revision identifiers, used by Alembic.
revision = "0004_add_chatgpt_models"
down_revision = "0003_create_user_question_count_table"
branch_labels: str | None = None
depends_on: str | None = None
def upgrade() -> None:
with get_sync_session() as session:
query = select(ChatGptModels)
results = session.execute(query)
models = results.scalars().all()
if models:
return
models = []
for data in ChatGptModelsEnum.base_models_priority():
models.append(ChatGptModels(**data))
session.add_all(models)
session.commit()
def downgrade() -> None:
chatgpt_table_name = ChatGptModels.__tablename__
with get_sync_session() as session:
# Truncate doesn't exists for SQLite
session.execute(text(f"""DELETE FROM {chatgpt_table_name}""")) # noqa: S608
session.commit()
logger.info("chatgpt models table has been truncated", table=chatgpt_table_name)

View File

@@ -0,0 +1,29 @@
"""add_last_question_at
Revision ID: 0004_add_last_question_at
Revises: 0003_create_user_question_count_table
Create Date: 2024-01-08 20:56:34.815976
"""
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision = "0004_add_last_question_at"
down_revision = "0003_create_user_question_count_table"
branch_labels = None
depends_on = None
def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index("ix_access_token_created_at", table_name="access_token")
op.add_column("user_question_count", sa.Column("last_question_at", sa.TIMESTAMP(timezone=True), nullable=False))
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("user_question_count", "last_question_at")
op.create_index("ix_access_token_created_at", "access_token", ["created_at"], unique=False)
# ### end Alembic commands ###