私はサービスの各エンドポイントでは、パターンセッションではなくエンジン/接続でSQLAlchemyをスレッドセーフで使用できますか?
engine = create_engine(database_uri)
connection = engine.connect()
を使用してデータベースに接続するためにSQLAlchemyのを使用して簡単なWebサービスを持って、私は次の方法で、同じ接続を使用します。
for result in connection.execute(query):
<do something fancy>
Session
はスレッドセーフではありませんので、connection
もスレッドセーフではありません。
これをしっかり続けることはできますか?そうでない場合、それを修正する最も簡単な方法は何ですか?
マイナーノート - サービスがマルチスレッドで実行されるかどうかはわかりませんが、私はむしろ問題が発生しないことを確信しています。
私はあなたの質問に答えがありませんが、私は返答として質問をしたかったのです。本当にORMが必要ですか?私はこれが個人的な選択の問題だと知っていますが...あなたのデータがリモートでもクリーンであれば、pyodbcを使用してカーソルを使うことができます。 – Kelvin
誰かがORMを使用する必要はないと思います。このケースでは、データベースが自分のコントロールから変わってしまったので、私は(個人的に)より簡単になりました。クエリの中には非常に複雑なものもあり、sqlalchemyを使用して正しいことがわかりやすく(個人的にも)、SQLは非常に冗長です。 – Clearer
大丈夫です。 +1を使用する正当な理由があります:) – Kelvin