| """ | |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ | |
| 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("๋ง์ด๊ทธ๋ ์ด์ ์๋ฃ!") | |