Search code examples
pythonpostgresqlpsycopg2fatal-error

I'm getting an error in pyscopg2 library (python) ERROR:root:connection to server at "localhost", port 5432 failed: FATAL: database does not exist


I'm getting "ERROR:root:connection to server at "localhost" (::1), port 5432 failed: FATAL: database "CONSUMER_EXPENDITURES" does not exist" . Below is my code snippet

`def create_database(): try: conn_consumer_expenditures = None

    conn_postgres = psycopg2.connect("dbname=postgres user=postgres password=1234")

    conn_postgres.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)

    conn_postgres.set_session(autocommit=True)
    
    cursor_postgres = conn_postgres.cursor()

    cursor_postgres.execute("DROP DATABASE IF EXISTS CONSUMER_EXPENDITURES")

    cursor_postgres.execute("CREATE DATABASE CONSUMER_EXPENDITURES")
    
    conn_postgres.commit()
    
    conn_postgres.close()

    time.sleep(2)
    
    conn_consumer_expenditures = psycopg2.connect("dbname=CONSUMER_EXPENDITURES user=postgres password=1234")

    conn_consumer_expenditures.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)

    conn_consumer_expenditures.set_session(autocommit=True)
    
    cursor_consumer_expenditures = conn_consumer_expenditures.cursor()

    return conn_consumer_expenditures, cursor_consumer_expenditures

except Exception as e:
    if conn_consumer_expenditures:
        conn_consumer_expenditures.rollback()
    logging.error(msg=str(e))`

I was trying to create a new database 'CONSUMER_EXPENDITURES' . But even after creating the db I'm getting database doesn't exist.


Solution

  • There can pro problem with case sensitivity. postgres use lower case notation by default. Try:

    psycopg2.connect("dbname=consumer_expenditures user=postgres password=1234")