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)