1

あるベースから別のベースにエントリをコピーするツールをsqlalchemyで作成します。「ドライラン」オプションを追加したいので、実際のコミットの代わりに、コミットされるエントリの数を出力するだけです:

session.add(foo)
session.add(bar)
if dry_run:
    print session.number_of_items_to_commit # <-- should print "2"
else:
    session.commit()

コミットされるアイテムの数を取得する方法は? Sessionクラスに適切なメソッドがありませんでした。

4

1 に答える 1

3

おそらくlen(session.new)あなたのタスクに使用できます:

このセッション内で「新規」とマークされたすべてのインスタンスのセット。

変更されたオブジェクトも追跡する必要がある場合は、session.dirtyを使用します

于 2013-04-29T08:42:06.607 に答える