Added the menu category delete route. Fix: Show blank vouchers in tables Fix: In rare cases, the old settements can stick around. fixed it.
750 B
750 B
name, description
| name | description |
|---|---|
| sqlalchemy-async | Writes SQLAlchemy 2.0 async database queries using Psycopg3. Use whenever interacting with the PostgreSQL database. |
SQLAlchemy 2.0 Async Standards
Model Definitions
- ALWAYS use SQLAlchemy 2.0 Declarative Base with
Mappedandmapped_column. - Example:
id: Mapped[int] = mapped_column(primary_key=True) - NEVER use the old
Column(Integer, primary_key=True)syntax.
Querying
- NEVER use
session.query(). This is legacy 1.x syntax. - ALWAYS use
sqlalchemy.select()combined withawait session.execute(stmt). - Extract results using
.scalars().all()or.scalar_one_or_none().
Session Management
- Use
sqlalchemy.ext.asyncio.AsyncSession. - Ensure all database I/O is awaited.