조인할 데이터가 없어도 불러오는 쿼리
Today I Learned 날짜 2024년 12월 5일 목요일 내용 버그 대폭발 아임리포트의 버그가 대폭발했다. 데이터 업데이트가 미친듯이 오래걸리기 시작해서, 제한시간인 6시간이 넘어가며 실패처리 되는 걸로 파악했다. 네이버에서 안준다고 못박아버리는 바람에, 우선은 “-”로 저장하도록 로직을 바꿔줬다. 이제 삭제된 키워드가 많더라도 하루만 고생하면 그 이후에는 요청이 오래 걸릴 일이 없다. 슈퍼어드민에서 유저를 불러올 때 일부 데이터가 안불러와진다.. 아마 온갖 데이터를 다 조인하는 과정에서 연관데이터가 없는 경우 누락된 듯하다. 쿼리를 수정해줬다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 기존 쿼리 stmt = ( select(models.User) .outerjoin(models.User.company) .options(joinedload(models.User.billing_plan)) .options(joinedload(models.User.google_login_account)) .options(joinedload(models.User.super_admin_memo)) ) db.execute(stmt).scalars().all() # 수정 쿼리 stmt = ( select(models.User) .outerjoin(models.User.company) .options(contains_eager(models.User.company)) .options(joinedload(models.User.billing_plan)) .options(joinedload(models.User.google_login_account)) .options(joinedload(models.User.super_admin_memo)) ) db.execute(stmt).unique().scalars().all() 회고 버그야 제발 ...