Files
migrations/uv_app/core/pgsql.py
2026-01-30 17:03:32 +02:00

35 lines
990 B
Python

import os
from typing import Optional
import psycopg2
from pathlib import Path
from dotenv import load_dotenv
DOTENV_PATH = Path(__file__).resolve().parents[2] / ".env"
# Force reload environment variables from repo .env, ignoring system vars.
load_dotenv(DOTENV_PATH, override=True)
DB_HOST = os.getenv("DB_HOST")
DB_PORT = os.getenv("DB_PORT")
DB_NAME = os.getenv("DB_NAME")
DB_USER = os.getenv("DB_USER")
DB_PASSWORD = os.getenv("DB_PASSWORD")
def connect_to_pgsql() -> Optional[psycopg2.extensions.connection]:
"""Establish a connection to the PostgreSQL database."""
try:
return psycopg2.connect(
host=DB_HOST,
port=DB_PORT,
database=DB_NAME,
user=DB_USER,
password=DB_PASSWORD,
# Set the client encoding to UTF-8.
options="-c client_encoding=utf8",
)
except psycopg2.Error as exc:
print(f"Error connecting to PostgreSQL database: {exc}")
return None