tiangolo / full-stack-fastapi-template

Full stack, modern web application template. Using FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, automatic HTTPS and more.
MIT License
24.39k stars 4.12k forks source link

fastapi and sqlalchemy #499

Open roshanafara opened 1 year ago

roshanafara commented 1 year ago

In fast API after execution of the code, the database connection is not closing using SQL alchemy how to resolve this issue?

SarloAkrobata commented 1 year ago

Are you using async or sync connection to database?

Vortexdude commented 3 months ago

you could try something like this -

engine = create_engine(SQLALCHEMY_DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
session = SessionLocal()
user = session.query(Model).filter_by(user_id=1).first()
session.close()

or ref - https://docs.sqlalchemy.org/en/20/orm/quickstart.html#declare-models:~:text=Database%20Metadata.-,Create%20Objects%20and%20Persist,-%C2%B6

from sqlalchemy.orm import Session

with Session(engine) as session:
    spongebob = User(
        name="spongebob",
        fullname="Spongebob Squarepants",
        addresses=[Address(email_address="spongebob@sqlalchemy.org")],
    )
    sandy = User(
        name="sandy",
        fullname="Sandy Cheeks",
        addresses=[
            Address(email_address="sandy@sqlalchemy.org"),
            Address(email_address="sandy@squirrelpower.org"),
        ],
    )
    patrick = User(name="patrick", fullname="Patrick Star")
    session.add_all([spongebob, sandy, patrick])
    session.commit()