26 lines
762 B
Python
26 lines
762 B
Python
# backend/db.py
|
||
import os
|
||
from psycopg2 import pool
|
||
from dotenv import load_dotenv
|
||
|
||
load_dotenv()
|
||
|
||
DATABASE_URL = os.getenv('DATABASE_URL')
|
||
|
||
# Initialise a connection pool (min 1, max 10 connections)
|
||
postgres_pool = pool.ThreadedConnectionPool(1, 10, dsn=DATABASE_URL)
|
||
|
||
def get_db_connection():
|
||
"""Return a connection from the pool. Caller must close it after use."""
|
||
conn = postgres_pool.getconn()
|
||
# Устанавливаем схему automarket (таблицы созданы там, а не в public)
|
||
cur = conn.cursor()
|
||
cur.execute("SET search_path TO automarket, public")
|
||
cur.close()
|
||
conn.commit()
|
||
return conn
|
||
|
||
def release_db_connection(conn):
|
||
"""Return the connection to the pool."""
|
||
postgres_pool.putconn(conn)
|