# How to see the SQL generated by SQLAlchemy a TraP database

Tested with TraP 3.1.1


In [ ]:
import tkp.db
import logging

#import sqlparse
import tkp.db.alchemy
logging.basicConfig(level=logging.INFO)

Database connection settings


In [ ]:
engine = 'postgresql'
host = 'localhost'
port = 5432
user = 'gijs'
password = 'gijs'
database = 'gijs'
query_loglevel = logging.WARNING  # Set to INFO to see queries, otherwise WARNING

connect to the database


In [ ]:
logging.getLogger('sqlalchemy.engine').setLevel(query_loglevel)
db = tkp.db.Database(engine=engine, host=host, port=port,
                     user=user, password=password, database=database)
db.connect()
session = db.Session()

Get a list of transients


In [ ]:
dir(tkp.db.alchemy)

In [ ]:
dataset_id = 5
dataset = tkp.db.model.Dataset(id=dataset_id)
query = tkp.db.alchemy._combined(session, dataset=dataset)
sql = str(query.compile())
print sql