zulip/zerver/management/commands/audit_fts_indexes.py

24 lines
756 B
Python

from typing import Any
from django.db import connection
from typing_extensions import override
from zerver.lib.management import ZulipBaseCommand
class Command(ZulipBaseCommand):
@override
def handle(self, *args: Any, **kwargs: str) -> None:
with connection.cursor() as cursor:
cursor.execute(
"""
UPDATE zerver_message
SET search_tsvector =
to_tsvector('zulip.english_us_search', subject || rendered_content)
WHERE to_tsvector('zulip.english_us_search', subject || rendered_content) != search_tsvector
"""
)
fixed_message_count = cursor.rowcount
print(f"Fixed {fixed_message_count} messages.")