pythonのsqlalchemyを使用して、CloudSQLに接続してクエリを実行しようとしたが「ObjectNotExecutableError」が発生した時の解決方法を備忘録として残します。
目次
結論
ObjectNotExecutableErrorが発生していたときのコード。
from sqlalchemy import create_engine
# データベースに接続するためのエンジン
db_engine = create_engine(...)
# 実行したいSQL
query = 'SELECT * FROM ...;'
# 接続しSQL実行
with db_engine.connect() as conn:
res = conn.execute(query)
これをこうする。
from sqlalchemy import create_engine, text
# データベースに接続するためのエンジン
db_engine = create_engine(...)
# 実行したいSQL
query = 'SELECT * FROM ...;'
# 接続しSQL実行
with db_engine.connect() as conn:
res = conn.execute(text(query))
クエリを sqlalchemy.text でラップする。
こちらを参考にさせていただきました。
コメント