Files
t6_mem0/cleanup_supabase_tables.py
Docker Config Backup 7e3ba093c4 PHASE 1 COMPLETE: mem0 + Supabase integration tested and working
 PHASE 1 ACHIEVEMENTS:
- Successfully migrated from Qdrant to self-hosted Supabase
- Fixed mem0 Supabase integration collection naming issues
- Resolved vector dimension mismatches (1536→768 for Ollama)
- All containers connected to localai docker network
- Comprehensive documentation updates completed

 TESTING COMPLETED:
- Database storage verification: Data properly stored in PostgreSQL
- Vector operations: 768-dimensional embeddings working perfectly
- Memory operations: Add, search, retrieve, delete all functional
- Multi-user support: User isolation verified
- LLM integration: Ollama qwen2.5:7b + nomic-embed-text operational
- Search functionality: Semantic search with relevance scores working

 INFRASTRUCTURE READY:
- Supabase PostgreSQL with pgvector:  OPERATIONAL
- Neo4j graph database:  READY (for Phase 2)
- Ollama LLM + embeddings:  WORKING
- mem0 v0.1.115:  FULLY FUNCTIONAL

PHASE 2 READY: Core memory system and API development can begin

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-31 13:40:31 +02:00

92 lines
3.4 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
Clean up all Supabase vecs tables and start fresh
"""
import psycopg2
import vecs
def cleanup_all_tables():
"""Clean up all tables in vecs schema"""
print("=" * 60)
print("SUPABASE VECS SCHEMA CLEANUP")
print("=" * 60)
try:
# Connect to database directly
conn = psycopg2.connect("postgresql://supabase_admin:CzkaYmRvc26Y@localhost:5435/postgres")
cur = conn.cursor()
print("🔍 Finding all tables in vecs schema...")
cur.execute("SELECT table_name FROM information_schema.tables WHERE table_schema = 'vecs';")
tables = cur.fetchall()
table_names = [t[0] for t in tables]
print(f"Found tables: {table_names}")
if table_names:
print(f"\n🗑️ Dropping {len(table_names)} tables...")
for table_name in table_names:
try:
cur.execute(f'DROP TABLE IF EXISTS vecs."{table_name}" CASCADE;')
print(f" ✅ Dropped: {table_name}")
except Exception as e:
print(f" ❌ Failed to drop {table_name}: {e}")
# Commit the drops
conn.commit()
print("✅ All table drops committed")
else:
print(" No tables found in vecs schema")
# Verify cleanup
cur.execute("SELECT table_name FROM information_schema.tables WHERE table_schema = 'vecs';")
remaining_tables = cur.fetchall()
print(f"\n📋 Remaining tables: {[t[0] for t in remaining_tables]}")
cur.close()
conn.close()
print("\n🧪 Testing fresh vecs client connection...")
connection_string = "postgresql://supabase_admin:CzkaYmRvc26Y@localhost:5435/postgres"
db = vecs.create_client(connection_string)
collections = db.list_collections()
print(f"Collections after cleanup: {[c.name for c in collections]}")
print("\n🎯 Testing fresh collection creation...")
test_collection = db.get_or_create_collection(name="test_fresh_start", dimension=1536)
print(f"✅ Successfully created: {test_collection.name} with dimension {test_collection.dimension}")
# Test basic operations
print("🧪 Testing basic vector operations...")
import numpy as np
# Insert test vector
test_vector = np.random.random(1536).tolist()
test_id = "test_vector_1"
test_metadata = {"content": "Fresh start test", "user_id": "test"}
test_collection.upsert([(test_id, test_vector, test_metadata)])
print("✅ Vector upserted successfully")
# Search test
results = test_collection.query(data=test_vector, limit=1, include_metadata=True)
print(f"✅ Search successful, found {len(results)} results")
if results:
print(f" Result: ID={results[0][0]}, Score={results[0][1]}")
# Clean up test collection
db.delete_collection("test_fresh_start")
print("✅ Test collection cleaned up")
print("\n" + "=" * 60)
print("🎉 CLEANUP SUCCESSFUL - VECS IS READY!")
print("=" * 60)
except Exception as e:
print(f"❌ Cleanup failed: {str(e)}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
cleanup_all_tables()