coderound / backend /clean_db.py
ketannnn's picture
feat: add frontend system health diagnostics and mute HF Celery gossip
27cbb3d
import asyncio
from src.database import engine
from sqlalchemy import text
from src.config import get_settings
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PayloadSchemaType
async def main():
async with engine.begin() as conn:
print('Wiping Postgres data natively...')
await conn.execute(text('DROP SCHEMA public CASCADE'))
await conn.execute(text('CREATE SCHEMA public'))
print('Postgres schema wiped.')
import qdrant_client
settings = get_settings()
try:
q = QdrantClient(url=settings.qdrant_url, api_key=settings.qdrant_api_key)
q.delete_collection(settings.collection_name)
q.create_collection(
collection_name=settings.collection_name,
vectors_config=VectorParams(size=settings.vector_size, distance=Distance.COSINE)
)
# Reinject indices required natively by the pipeline
q.create_payload_index(
collection_name=settings.collection_name,
field_name="session_id",
field_schema=PayloadSchemaType.KEYWORD
)
q.create_payload_index(
collection_name=settings.collection_name,
field_name="years_of_experience",
field_schema=PayloadSchemaType.FLOAT
)
print('Qdrant collection wiped and re-indexed.')
except Exception as e:
print('Qdrant error:', e)
print("\n------------------------------")
print("Database is completely purged but empty.")
print("WARNING: You MUST now run the following command to rebuild the tables:")
print(" alembic upgrade head")
print("------------------------------")
if __name__ == '__main__':
asyncio.run(main())