""" 데이터베이스 마이그레이션 스크립트 nickname 컬럼을 추가합니다. """ import sqlite3 import os from pathlib import Path # 데이터베이스 경로 db_path = Path(__file__).parent / 'instance' / 'finance_analysis.db' def migrate_database(): """데이터베이스에 nickname 컬럼 추가""" if not db_path.exists(): print(f"데이터베이스 파일이 없습니다: {db_path}") print("앱을 실행하면 자동으로 생성됩니다.") return try: conn = sqlite3.connect(str(db_path)) cursor = conn.cursor() # user 테이블에 nickname 컬럼이 있는지 확인 cursor.execute("PRAGMA table_info(user)") columns = [column[1] for column in cursor.fetchall()] if 'nickname' in columns: print("nickname 컬럼이 이미 존재합니다.") conn.close() return # nickname 컬럼 추가 print("nickname 컬럼을 추가하는 중...") cursor.execute("ALTER TABLE user ADD COLUMN nickname VARCHAR(80)") conn.commit() print("nickname 컬럼이 성공적으로 추가되었습니다.") conn.close() except sqlite3.OperationalError as e: print(f"오류 발생: {e}") if "duplicate column name" in str(e).lower(): print("nickname 컬럼이 이미 존재합니다.") else: raise except Exception as e: print(f"예상치 못한 오류: {e}") raise if __name__ == '__main__': print("데이터베이스 마이그레이션 시작...") migrate_database() print("마이그레이션 완료!")