12345678910111213141516171819202122232425262728293031323334353637383940 |
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker, scoped_session
- from .base_class import Base
- import os
- from pgvector.sqlalchemy import Vector
- # 数据库配置
- # 远程PostgreSQL数据库连接配置
- # 从环境变量获取数据库连接信息,如果未设置则使用默认值
- DB_HOST = os.getenv("DB_HOST", "173.18.12.203")
- DB_PORT = os.getenv("DB_PORT", "5432")
- DB_USER = os.getenv("DB_USER", "knowledge")
- DB_PASS = os.getenv("DB_PASSWORD", "qwer1234.")
- DB_NAME = os.getenv("DB_NAME", "medkg")
- DATABASE_URL = f"postgresql://{DB_USER}:{DB_PASS}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
- engine = create_engine(
- DATABASE_URL,
- pool_size=100,
- max_overflow=20,
- pool_pre_ping=True,
- connect_args={'options': '-c search_path=public'},
- echo=True # 开启SQL日志
- )
- SessionLocal = sessionmaker(
- autocommit=False,
- autoflush=False,
- bind=engine
- )
- session = scoped_session(SessionLocal)
- def get_db():
- db = SessionLocal()
- try:
- yield db
- finally:
- db.close()
|