anomaly / anomaly/lab-python-server

Document relevant asyncio notes for SQLAlchemy

Abierto
#26 0 comentarios 0 reacciones 1 asignado Reclamado por @devraj Ver en GitHub
documentation
Lenguaje dominante
Python
Estrellas
16
Forks
4
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

When using `asyncio` - queries etc use the new `2.0` query pattern e.g

```python
@classmethod
async def get_active_for_facility(cls, async_db_session, facility_id):
query = select(cls).options(selectinload(cls.products)).\
where(cls.facility_id == facility_id).\
where(cls.active == True)
results = await async_db_session.execute(query)
(result,) = results.scalars().all()
return result
```

which also means using statements like `select(cls).options(selectinload(cls.products))` to load the children. This is required when we are trying to include these objects as part of the API results.

While SQLAlchemy has extensive [documentation about this](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html) we should extract our some useful tips and tricks to speed up the learning process, current hit list

- [ ] Defining [relationships for eager loading](https://leontrolski.github.io/sqlalchemy-relationships.html)
- [ ] Querying many or single objects
- [ ] Loading objects multiple levels deep

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.