Un charançon vert

Déboguer une requête SQL avec SQLAlchemy

SQLAlchemy permet d'interroger n'importe quelle base de données à la manière d'un ORM. Mais vérifier quel est le code SQL final exécuté peut nous aider.

Pour analyser le SQL exécuté par SQLAlchemy, vous devez importer le pilote de votre type de base données de sqlalchemy.dialects.

Le code final est le suivant :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Pour SQLite
from sqlalchemy.dialects import sqlite

query = session.query(Entity).filter(
    and_(
        Entity.status.in_(target_statuses),
        Entity.confirmed_at == None,
        Entity.created_at <= cutoff_datetime
    )
).order_by(func.coalesce(
    Entity.in_progress_at,
    Entity.created_at)
)

# Cela permet d'imprimer le code SQL généré et exécuté par SQLAlchemy

print(query.statement.compile(dialect=sqlite.dialect()))

Suivez-moi !

Merci d’avoir lu cet article. Assurez-vous de me suivre sur X, de vous abonner à ma publication Substack et d’ajouter mon blog à vos favoris pour ne pas manquer les prochains articles.

Photo de Pixabay.