Spaces:
Sleeping
Sleeping
| import sys | |
| import os | |
| # Add the current directory to sys.path to allow importing 'app' | |
| sys.path.append(os.getcwd()) | |
| from sqlalchemy import create_engine | |
| from sqlalchemy.pool import NullPool | |
| from app.db.base import Base, settings | |
| from app.api.seed import seed_database | |
| from sqlalchemy.orm import sessionmaker | |
| import json | |
| def run(): | |
| print(">>> Starting Product Import from extra_products_vortex.json...") | |
| # 1. Create a fresh engine with NullPool and use port 6543 (Transaction Mode) | |
| # to avoid "MaxClientsInSessionMode" errors on port 5432. | |
| db_url = settings.DATABASE_URL.replace(":5432/", ":6543/") | |
| temp_engine = create_engine(db_url, poolclass=NullPool) | |
| TempSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=temp_engine) | |
| # 2. Ensure tables exist | |
| Base.metadata.create_all(bind=temp_engine) | |
| # 3. Setup DB Session | |
| db = TempSessionLocal() | |
| try: | |
| # Step 1: Initialize Categories and wipe data | |
| print(">>> Wiping data and creating categories...") | |
| result = seed_database(clear=True, db=db) | |
| if not result.isSuccess: | |
| print(f"FAILED: {result.error}") | |
| return | |
| print(f"SUCCESS: {result.value.get('message')}") | |
| print(f"Stats: Inserted {result.value.get('inserted_new')} products.") | |
| except Exception as e: | |
| print(f"CRITICAL ERROR: {str(e)}") | |
| db.rollback() | |
| finally: | |
| db.close() | |
| if __name__ == "__main__": | |
| run() | |