#!/usr/bin/env python3 """ Check Database This script checks the number of records in the database tables. Usage: python check_db.py """ import os import sys from dotenv import load_dotenv # Add parent directory to path to import utils sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from utils.db_connector import DatabaseConnector from utils.logger import setup_logger # Load environment variables load_dotenv() # Setup logging logger = setup_logger("check_db") def check_db(): """ Check the number of records in the database tables. """ db = DatabaseConnector() # Check Contact table query = 'SELECT COUNT(*) as count FROM "Contact"' result = db.execute_query(query) contacts_count = result[0]["count"] logger.info(f"Contacts: {contacts_count:,}") # Check NftHolding table query = 'SELECT COUNT(*) as count FROM "NftHolding"' result = db.execute_query(query) nft_holdings_count = result[0]["count"] logger.info(f"NFT Holdings: {nft_holdings_count:,}") # Check TokenHolding table query = 'SELECT COUNT(*) as count FROM "TokenHolding"' result = db.execute_query(query) token_holdings_count = result[0]["count"] logger.info(f"Token Holdings: {token_holdings_count:,}") # Check DaoMembership table query = 'SELECT COUNT(*) as count FROM "DaoMembership"' result = db.execute_query(query) dao_memberships_count = result[0]["count"] logger.info(f"DAO Memberships: {dao_memberships_count:,}") # Check Note table query = 'SELECT COUNT(*) as count FROM "Note"' result = db.execute_query(query) notes_count = result[0]["count"] logger.info(f"Notes: {notes_count:,}") # Check Tag table query = 'SELECT COUNT(*) as count FROM "Tag"' result = db.execute_query(query) tags_count = result[0]["count"] logger.info(f"Tags: {tags_count:,}") # Check TagsOnContacts table query = 'SELECT COUNT(*) as count FROM "TagsOnContacts"' result = db.execute_query(query) tags_on_contacts_count = result[0]["count"] logger.info(f"Tags on Contacts: {tags_on_contacts_count:,}") # Check DataSource table query = 'SELECT COUNT(*) as count FROM "DataSource"' result = db.execute_query(query) data_sources_count = result[0]["count"] logger.info(f"Data Sources: {data_sources_count:,}") # Check ScrapingJob table query = 'SELECT COUNT(*) as count FROM "ScrapingJob"' result = db.execute_query(query) scraping_jobs_count = result[0]["count"] logger.info(f"Scraping Jobs: {scraping_jobs_count:,}") # Check Public Nouns NFT holdings query = ''' SELECT COUNT(*) as count FROM "NftHolding" WHERE "contractAddress" = '0x93ecac71499147627DFEc6d0E494d50fCFFf10EE' ''' result = db.execute_query(query) public_nouns_count = result[0]["count"] logger.info(f"Public Nouns NFT Holdings: {public_nouns_count:,}") # Check unique holders of Public Nouns NFT query = ''' SELECT COUNT(DISTINCT "contactId") as count FROM "NftHolding" WHERE "contractAddress" = '0x93ecac71499147627DFEc6d0E494d50fCFFf10EE' ''' result = db.execute_query(query) unique_holders_count = result[0]["count"] logger.info(f"Unique Public Nouns NFT Holders: {unique_holders_count:,}") if __name__ == "__main__": check_db()