Spaces:
Sleeping
Sleeping
File size: 1,110 Bytes
edadf88 6efca30 edadf88 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import psycopg2
from psycopg2.extras import RealDictCursor
import os
from dotenv import load_dotenv
load_dotenv()
DATABASE_URL = os.getenv("DATABASE_URL")
def get_connection():
return psycopg2.connect(DATABASE_URL, cursor_factory=RealDictCursor)
def setup_database():
conn = get_connection()
cur = conn.cursor()
cur.execute("CREATE EXTENSION IF NOT EXISTS vector;")
cur.execute("""
CREATE TABLE IF NOT EXISTS studies (
id SERIAL PRIMARY KEY,
pmid TEXT UNIQUE NOT NULL,
title TEXT,
abstract TEXT,
authors TEXT[],
year INT,
journal TEXT,
study_type TEXT,
embedding vector(384)
);
""")
cur.execute("""
CREATE INDEX IF NOT EXISTS studies_embedding_idx
ON studies
USING ivfflat (embedding vector_cosine_ops)
WITH (lists = 100);
""")
conn.commit()
cur.close()
conn.close()
print("Database setup complete.")
if __name__ == "__main__":
setup_database() |