From a238ce21235d4208e9d43031c5e38b1f8427daae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EA=B2=BD=EB=AF=BC?= Date: Thu, 19 Mar 2026 08:55:51 +0900 Subject: [PATCH] Upload db.py --- 03.Code/업로드용/db.py | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 03.Code/업로드용/db.py diff --git a/03.Code/업로드용/db.py b/03.Code/업로드용/db.py new file mode 100644 index 0000000..8ca4a60 --- /dev/null +++ b/03.Code/업로드용/db.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +import os +import psycopg2 +from psycopg2.extras import RealDictCursor + +DATABASE_URL = os.environ.get("DATABASE_URL") + +def get_conn(): + return psycopg2.connect(DATABASE_URL, cursor_factory=RealDictCursor) + +def init_db(): + with get_conn() as conn: + with conn.cursor() as cur: + cur.execute(""" + CREATE TABLE IF NOT EXISTS files ( + file_hash TEXT PRIMARY KEY, + filename TEXT, + uploaded_at TIMESTAMP DEFAULT NOW() + ); + """) + cur.execute(""" + CREATE TABLE IF NOT EXISTS rag_cache ( + file_hash TEXT PRIMARY KEY, + chunks_json TEXT, + faiss_index BYTEA, + vectors BYTEA, + meta_json TEXT, + created_at TIMESTAMP DEFAULT NOW() + ); + """) + cur.execute(""" + CREATE TABLE IF NOT EXISTS sessions ( + session_id TEXT PRIMARY KEY, + file_hashes TEXT[], + doc_type TEXT, + created_at TIMESTAMP DEFAULT NOW() + ); + """) + cur.execute(""" + CREATE TABLE IF NOT EXISTS outlines ( + session_id TEXT PRIMARY KEY, + outline_text TEXT, + created_at TIMESTAMP DEFAULT NOW() + ); + """) + cur.execute(""" + CREATE TABLE IF NOT EXISTS briefings ( + session_id TEXT PRIMARY KEY, + briefing_json TEXT, + html TEXT, + created_at TIMESTAMP DEFAULT NOW() + ); + """) + conn.commit() + print("[DB] + 珥湲고 + 猷", flush=True)