[Error][SQLAlchemy] AttributeError: 'generator' object has no attribute 'add’

오도원공육사·2022년 8월 1일
0

FastAPI

목록 보기
4/4

문제 코드

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

def get_db():
  db = SessionLocal()
  try: 
    yield db
  except:
    db.rollback()
  finally:
    db.close()
async def something(data_in, db: Session = get_db()):
  db.add(Data(**data_in)

위 상황에서 get_db는 ‘generator’를 반환하므로 add 메서드가 없다. 따라서 next 를 사용해서 세션을 정상적으로 받아야한다.

해결책

async def something(data_in, db: Session = next(get_db())):
  db.add(Data(**data_in)

reference

profile
잘 먹고 잘살기

0개의 댓글