26 lines
616 B
Python
26 lines
616 B
Python
import psycopg2
|
|
from psycopg2.extras import RealDictCursor
|
|
from contextlib import contextmanager
|
|
import config
|
|
|
|
@contextmanager
|
|
def get_cursor():
|
|
conn = psycopg2.connect(
|
|
host=config.DB_AUTH_HOST,
|
|
port=config.DB_AUTH_PORT,
|
|
dbname=config.DB_AUTH_NAME,
|
|
user=config.DB_AUTH_USER,
|
|
password=config.DB_AUTH_PASSWORD,
|
|
options="-c timezone=UTC",
|
|
)
|
|
try:
|
|
cur = conn.cursor(cursor_factory=RealDictCursor)
|
|
yield cur
|
|
conn.commit()
|
|
except Exception:
|
|
conn.rollback()
|
|
raise
|
|
finally:
|
|
cur.close()
|
|
conn.close()
|