私のプロジェクトではormにsqlalchemyを使用しています。私の問題は、session.close()が呼び出されるまでsession.refresh(obj)の新しいdb接続が使用されるたびに保持されることです。 私は複数のオブジェクトをリフレッシュしたいとき、すぐに接続が不足します。SQLAlchemy session.refresh()は新しい接続を作成します
セッションメーカー:
session = session_maker()
try:
yield session
session.commit()
for obj in session:
session.refresh(obj)
except Exception as e:
session.rollback()
raise e
finally:
session.close()
使用法:私はアップデートで満たされている列を持っていると私は、現在の値を返すようにしたいので、私はリフレッシュを使用しています
with make_session(...) as session:
for mapped in [self._mapper.map(obj) for obj in objects]:
saved_entities.append(mapped)
session.add(mapped)
session.flush()
。
for obj in session:
session.commit()
session.refresh(obj)
2つの接続のみが使用されている(罰金である)が、オブジェクトはデータがない:
好奇心旺盛なことは、私はそれを行うときということです。
私は 'session.refresh(obj)'の後に 'session.connection()。close()'を試みましたが、成功しませんでした。 – literg