Page 1 of 1

Fehler im Python/PostgreSQL-Code: „Datenbank existiert nicht“, aber sie existiert

Posted: 03 Jan 2025, 18:00
by Guest
Beim Ausführen dieses Codes wird immer wieder eine widersprüchliche Fehlermeldung angezeigt. Es wird mir die Meldung angezeigt, dass die Datenbank bereits existiert, und später kommt die Meldung, dass die Datenbank nicht existiert.
Ich kann nicht herausfinden, warum.
Hier ist die Fehlermeldung, die ich erhalte :

Code: Select all

"Database 'SB_DB' already exists.
Traceback (most recent call last):
File "/Users/path/sb_bd2.py", line 40, in 
conn = psycopg2.connect(
^^^^^^^^^^^^^^^^^

File "/opt/anaconda3/lib/python3.12/site-packages/psycopg2/__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: FATAL:  database "SB_DB" does not exist"
Das habe ich versucht:

Code: Select all

file = pd.read_csv('ios_subscriber_data.csv')
file_df = pd.DataFrame(file)

db_name = "SB_DB"
db_user = "postgres"
db_password = "******"
db_host = "localhost"
db_port = "5432"

conn = psycopg2.connect(
dbname='postgres',
user=db_user,
password=db_password,
host=db_host,
port=db_port
)
conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cursor = conn.cursor()

cursor.execute(f"SELECT 1 FROM pg_database WHERE datname = '{db_name}';")
exists = cursor.fetchone()

if not exists:
try:
cursor.execute(f"CREATE DATABASE {db_name};")
print(f"Database '{db_name}' was created.")
except psycopg2.errors.DuplicateDatabase:
print(f"Database '{db_name}' already exists.")
else:
print(f"Database '{db_name}' already exists.")

cursor.close()
conn.close()

conn = psycopg2.connect(
dbname=db_name,
user=db_user,
password=db_password,
host=db_host,
port=db_port
)
cursor = conn.cursor()