""" Setup script for TigerGraph — Run this once to initialize the graph database. Creates schema (Document, Chunk, Entity, Community vertices + edges) and installs GSQL queries (vector search, entity search, graph traversal). """ import os import sys import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def setup_tigergraph(): """One-time TigerGraph setup: create schema and install queries.""" from graphrag.layers.graph_layer import GraphLayer config = { "host": os.getenv("TG_HOST", ""), "graphname": os.getenv("TG_GRAPH", "GraphRAG"), "username": os.getenv("TG_USERNAME", "tigergraph"), "password": os.getenv("TG_PASSWORD", ""), } if not config["host"]: logger.error("TG_HOST not set. Please set environment variables.") logger.info("Required: TG_HOST, TG_PASSWORD") logger.info("Optional: TG_GRAPH (default: GraphRAG), TG_USERNAME (default: tigergraph)") sys.exit(1) graph = GraphLayer(config=config) logger.info("Connecting to TigerGraph Cloud...") if not graph.connect(): logger.error("Connection failed. Check your credentials.") sys.exit(1) logger.info("Creating graph schema...") result = graph.create_schema() logger.info(f"Schema result: {result}") logger.info("Installing GSQL queries...") results = graph.install_queries() for name, status in results.items(): logger.info(f" {name}: {status}") logger.info("✅ TigerGraph setup complete!") return True if __name__ == "__main__": setup_tigergraph()