refactor: config.yaml 제거 및 환경변수 전용 설정으로 전환
- config.yaml 파일 삭제 (모든 설정을 .env로 이관) - conf/db.py: 환경변수에서 직접 DB 설정 로드 - lib/common.py: load_config()를 환경변수 기반으로 완전히 재작성 - .env 파일에 모든 설정값 추가 (API, GA4, POS, 예측 가중치 등) - YAML 의존성 제거, 환경변수만으로 전체 시스템 설정 가능 - 12-factor app 원칙 준수 (설정을 환경변수로 관리)
This commit is contained in:
37
conf/db.py
37
conf/db.py
@ -3,41 +3,22 @@ import os
|
||||
import logging
|
||||
from sqlalchemy import create_engine, event, exc, pool
|
||||
from sqlalchemy.orm import sessionmaker, scoped_session
|
||||
import yaml
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# 프로젝트 루트 경로 설정
|
||||
BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
||||
CONFIG_PATH = os.path.join(BASE_DIR, 'conf', 'config.yaml')
|
||||
|
||||
def load_config(path=CONFIG_PATH):
|
||||
"""설정 파일 로드 (환경변수 우선)"""
|
||||
try:
|
||||
# config.yaml 로드
|
||||
with open(path, 'r', encoding='utf-8') as f:
|
||||
config = yaml.safe_load(f)
|
||||
if not config:
|
||||
raise ValueError(f"설정 파일이 비어있음: {path}")
|
||||
|
||||
# 환경변수로 데이터베이스 설정 덮어쓰기
|
||||
if os.getenv('DB_HOST'):
|
||||
config.setdefault('database', {})
|
||||
config['database']['host'] = os.getenv('DB_HOST', config['database'].get('host'))
|
||||
config['database']['user'] = os.getenv('DB_USER', config['database'].get('user'))
|
||||
config['database']['password'] = os.getenv('DB_PASSWORD', config['database'].get('password'))
|
||||
config['database']['name'] = os.getenv('DB_NAME', config['database'].get('name'))
|
||||
|
||||
return config
|
||||
except FileNotFoundError:
|
||||
logger.error(f"설정 파일을 찾을 수 없음: {path}")
|
||||
raise
|
||||
except yaml.YAMLError as e:
|
||||
logger.error(f"YAML 파싱 오류: {e}")
|
||||
raise
|
||||
def get_db_config():
|
||||
"""환경변수에서 데이터베이스 설정 로드"""
|
||||
return {
|
||||
'host': os.getenv('DB_HOST', 'localhost'),
|
||||
'user': os.getenv('DB_USER', 'firstgarden'),
|
||||
'password': os.getenv('DB_PASSWORD', 'Fg9576861!'),
|
||||
'name': os.getenv('DB_NAME', 'firstgarden')
|
||||
}
|
||||
|
||||
config = load_config()
|
||||
db_cfg = config.get('database', {})
|
||||
db_cfg = get_db_config()
|
||||
|
||||
# DB URL 구성
|
||||
db_url = (
|
||||
|
||||
Reference in New Issue
Block a user