#!/usr/bin/env python3 """ formulas 테이블에 efficacy(주요 효능) 칼럼 추가 """ import sqlite3 def add_efficacy_column(): """formulas 테이블에 efficacy 칼럼 추가 및 데이터 입력""" conn = sqlite3.connect('database/kdrug.db') cursor = conn.cursor() try: # 1. efficacy 칼럼이 이미 있는지 확인 cursor.execute("PRAGMA table_info(formulas)") columns = cursor.fetchall() column_names = [col[1] for col in columns] if 'efficacy' not in column_names: print("📝 efficacy 칼럼 추가 중...") cursor.execute(""" ALTER TABLE formulas ADD COLUMN efficacy TEXT """) print("✅ efficacy 칼럼 추가 완료") else: print("ℹ️ efficacy 칼럼이 이미 존재합니다") # 2. 기존 처방들의 주요 효능 데이터 업데이트 print("\n📋 처방별 주요 효능 데이터 추가:") print("-"*60) formula_efficacies = { "십전대보탕": "기혈양허(氣血兩虛)를 치료, 대보기혈(大補氣血), 병후 회복, 수술 후 회복, 만성 피로 개선", "소청룡탕": "외감풍한(外感風寒), 내정수음(內停水飮)으로 인한 기침, 천식 치료, 해표산한, 온폐화음", "갈근탕": "외감풍한으로 인한 두통, 발열, 오한, 항강 치료, 해표발한, 생진지갈", "쌍화탕": "기혈허약, 피로회복, 감기예방, 면역력 증강, 원기회복", "월비탕 1차": "비만치료 초기단계, 대사촉진, 체중감량, 부종개선", "월비탕 2차": "비만치료 중기단계, 대사촉진 강화, 체중감량, 부종개선", "월비탕 3차": "비만치료 후기단계, 대사촉진 최대화, 체중감량, 체질개선", "월비탕 4차": "비만치료 마무리단계, 체중유지, 체질개선, 요요방지", "삼소음": "리기화담(理氣化痰), 해표산한(解表散寒), 외감풍한과 내상식적으로 인한 기침, 가래 치료" } for formula_name, efficacy in formula_efficacies.items(): cursor.execute(""" UPDATE formulas SET efficacy = ? WHERE formula_name = ? """, (efficacy, formula_name)) if cursor.rowcount > 0: print(f"✅ {formula_name}: 효능 추가됨") else: print(f"⚠️ {formula_name}: 처방을 찾을 수 없음") conn.commit() # 3. 업데이트 결과 확인 print("\n📊 업데이트 결과 확인:") print("-"*60) cursor.execute(""" SELECT formula_name, efficacy FROM formulas WHERE efficacy IS NOT NULL ORDER BY formula_id """) results = cursor.fetchall() for name, efficacy in results: print(f"\n{name}:") print(f" {efficacy[:80]}...") # 4. 테이블 구조 최종 확인 print("\n📋 formulas 테이블 최종 구조:") print("-"*60) cursor.execute("PRAGMA table_info(formulas)") columns = cursor.fetchall() for col in columns: if col[1] in ['formula_name', 'description', 'efficacy']: print(f" {col[1]:20}: {col[2]}") except sqlite3.Error as e: print(f"❌ 데이터베이스 오류: {e}") conn.rollback() return False finally: conn.close() return True if __name__ == "__main__": print("🌿 처방 효능 칼럼 추가 프로그램") print("="*60) if add_efficacy_column(): print("\n✅ efficacy 칼럼 추가 및 데이터 업데이트 완료!") else: print("\n❌ 작업 중 오류가 발생했습니다.")