refactor: remove unused is_deleted field from conversations table

Remove the is_deleted field that was never utilized for soft deletion.
This simplifies queries and reduces unnecessary database overhead.

Fixes #25017
This commit is contained in:
-LAN-
2025-09-02 23:57:52 +08:00
parent 3d414678e3
commit 74202586da
5 changed files with 35 additions and 9 deletions

View File

@@ -343,9 +343,7 @@ class CompletionConversationApi(Resource):
current_user, _ = current_account_with_tenant()
args = CompletionConversationQuery.model_validate(request.args.to_dict(flat=True)) # type: ignore
query = sa.select(Conversation).where(
Conversation.app_id == app_model.id, Conversation.mode == "completion", Conversation.is_deleted.is_(False)
)
query = sa.select(Conversation).where(Conversation.app_id == app_model.id, Conversation.mode == "completion")
if args.keyword:
from libs.helper import escape_like_pattern
@@ -460,7 +458,7 @@ class ChatConversationApi(Resource):
.subquery()
)
query = sa.select(Conversation).where(Conversation.app_id == app_model.id, Conversation.is_deleted.is_(False))
query = sa.select(Conversation).where(Conversation.app_id == app_model.id)
if args.keyword:
from libs.helper import escape_like_pattern

View File

@@ -0,0 +1,33 @@
"""remove unused is_deleted field from conversations
Revision ID: 4f02b6704509
Revises: b95962a3885c
Create Date: 2025-09-02 20:12:37.311318
"""
from alembic import op
import models as models
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '4f02b6704509'
down_revision = 'b95962a3885c'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('conversations', schema=None) as batch_op:
batch_op.drop_column('is_deleted')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('conversations', schema=None) as batch_op:
batch_op.add_column(sa.Column('is_deleted', sa.BOOLEAN(), server_default=sa.text('false'), autoincrement=False, nullable=False))
# ### end Alembic commands ###

View File

@@ -745,8 +745,6 @@ class Conversation(Base):
"MessageAnnotation", backref="conversation", lazy="select", passive_deletes="all"
)
is_deleted: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false"))
@property
def inputs(self) -> dict[str, Any]:
inputs = self._inputs.copy()

View File

@@ -49,7 +49,6 @@ class ConversationService:
return InfiniteScrollPagination(data=[], limit=limit, has_more=False)
stmt = select(Conversation).where(
Conversation.is_deleted == False,
Conversation.app_id == app_model.id,
Conversation.from_source == ("api" if isinstance(user, EndUser) else "console"),
Conversation.from_end_user_id == (user.id if isinstance(user, EndUser) else None),
@@ -168,7 +167,6 @@ class ConversationService:
Conversation.from_source == ("api" if isinstance(user, EndUser) else "console"),
Conversation.from_end_user_id == (user.id if isinstance(user, EndUser) else None),
Conversation.from_account_id == (user.id if isinstance(user, Account) else None),
Conversation.is_deleted == False,
)
.first()
)

View File

@@ -149,7 +149,6 @@ class TestWebConversationService:
from_end_user_id=user.id if isinstance(user, EndUser) else None,
from_account_id=user.id if isinstance(user, Account) else None,
dialogue_count=0,
is_deleted=False,
)
from extensions.ext_database import db