"""PIN 로그인 시절부터 쌓인, 소유자 없는(user_id IS NULL) 습관을 지정한 이메일의 계정으로 연결합니다. 먼저 구글 로그인을 한 번 해서 계정이 생성된 뒤에 실행하세요. 사용법: python scripts/claim_orphan_habits.py <이메일> """ import sys from sqlalchemy import select, update from app.database import SessionLocal from app.models.habit import Habit from app.models.user import User if __name__ == "__main__": if len(sys.argv) != 2: raise SystemExit("사용법: python scripts/claim_orphan_habits.py <이메일>") email = sys.argv[1] db = SessionLocal() try: user = db.scalar(select(User).where(User.email == email)) if user is None: raise SystemExit(f"'{email}' 계정을 찾을 수 없습니다. 먼저 구글 로그인을 한 번 해주세요.") result = db.execute( update(Habit).where(Habit.user_id.is_(None)).values(user_id=user.id) ) db.commit() print(f"{result.rowcount}개의 습관을 '{email}' 계정으로 연결했습니다.") finally: db.close()