2023-10-27

Cannot connect to Neo4j in Python to push data

I am going slightly crazy trying to understand why I can't push data to my Neo4j database using CYPHER in Python.

I am running basic testing code just to see if I can push data. Here is my testing code:

import logging
from neo4j import GraphDatabase

# Set up logging
logging.basicConfig(level=logging.DEBUG)  # Change the level to ERROR, WARNING, INFO, or DEBUG as needed
log = logging.getLogger("neo4j")

class Neo4jService:
    def __init__(self, uri, user, password):
        self._driver = GraphDatabase.driver(uri, auth=(user, password))
        
    def close(self):
        log.debug("Closing driver.")
        self._driver.close()
        
    def run_queries(self, queries):
        log.debug("Running queries.")
        with self._driver.session() as session:
            for query in queries:
                log.debug(f"Executing query: {query}")
                session.run(query)

try:
    # Initialize the Neo4j service
    URI = "neo4j+s://838f9df7.databases.neo4j.io"
    AUTH = ("neo4j", "my_password")

    log.info("Initializing driver.")
    with GraphDatabase.driver(URI, auth=AUTH) as driver:
        log.info("Verifying connectivity.")
        driver.verify_connectivity()

    summary = driver.execute_query(
        "MERGE (:Person {name: $name})",
        name="Alice",
        database_="neo4j",
    ).summary

    log.info(f"Created {summary.counters.nodes_created} nodes in {summary.result_available_after} ms.")

except Exception as e:
    log.error("An error occurred:", exc_info=True)

Whatever I seem to do, I get an error like this:

neo4j.exceptions.ServiceUnavailable: Unable to retrieve routing information

I have tried manually telling the Neo4j to trust the certificate by saving the certificate as a file and including a trust setting in my code. But this didn't work. I have tried swithcing from neo4j+s to bolt or just neo4j. I have updated neo4j and python. I feel like I have been debugging for about two days. Whatever I do, nothing happens in my Neo4j database. Help appreciated!



No comments:

Post a Comment