분류기 개선사항: 1. ELL-O-LET vs 일반 엘보 분류 개선 - OLET 우선순위 확인 로직 추가 - ELL 키워드 충돌 문제 해결 2. 엘보 서브타입 강화 - 90DEG_LONG_RADIUS, 90DEG_SHORT_RADIUS 등 조합형 추가 - 더 구체적인 키워드 패턴 지원 3. 레듀스 플랜지 분류 개선 - REDUCING FLANGE가 FITTING이 아닌 FLANGE로 분류되도록 수정 - 특별 우선순위 로직 추가 4. 90 ELL SW 분류 문제 해결 - fitting_keywords에 ELL 키워드 추가 - ELBOW description_keywords에 ELL, 90 ELL, 45 ELL 추가 기술적 개선: - 키워드 우선순위 체계 강화 - 구체적인 패턴 매칭 개선 - 분류 신뢰도 향상 플랜지 카테고리 개선: - 타입 풀네임 표시 (WN → WELD NECK FLANGE) - 끝단처리 별도 컬럼 추가 (RF → RAISED FACE) - 엑셀 내보내기 구조 개선 (P열 납기일, 관리항목 4개)
36 lines
885 B
Python
36 lines
885 B
Python
from sqlalchemy import create_engine
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
from sqlalchemy.orm import sessionmaker
|
|
import os
|
|
|
|
# 데이터베이스 URL (환경변수에서 읽거나 기본값 사용)
|
|
DATABASE_URL = os.getenv(
|
|
"DATABASE_URL",
|
|
"postgresql://tkmp_user:tkmp_password_2025@postgres:5432/tk_mp_bom"
|
|
)
|
|
|
|
# SQLAlchemy 엔진 생성 (UTF-8 인코딩 설정)
|
|
engine = create_engine(
|
|
DATABASE_URL,
|
|
connect_args={
|
|
"client_encoding": "utf8",
|
|
"options": "-c client_encoding=utf8 -c timezone=UTC"
|
|
},
|
|
pool_pre_ping=True,
|
|
echo=False
|
|
)
|
|
|
|
# 세션 팩토리 생성
|
|
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
|
|
|
# Base 클래스 생성
|
|
Base = declarative_base()
|
|
|
|
# 데이터베이스 의존성 함수
|
|
def get_db():
|
|
db = SessionLocal()
|
|
try:
|
|
yield db
|
|
finally:
|
|
db.close()
|