0
私が持っている機能:おそらくなぜsqlalchemyはpostgresqlに挿入を行わないのですか?
def set_daily_amount_once(self):
query = Session().query(AccountBalance).order_by(AccountBalance.time_valued).all()
items = [item.__dict__ for item in query]
merchants = [d['merchant_account_id'] for d in items]
unique_merchants = [i for i in Counter(merchants)]
all_merchants_and_generated_dates = []
all_statements = []
all_daily_statement_for_database = []
for i in unique_merchants:
merchant_and_generated_dates = {}
date_start = self.get_ab_trs(i,time.strftime("%Y-%m-%d"))[2]
date_end = time.strftime("%Y-%m-%d")
start = datetime.datetime.strptime(date_start, "%Y-%m-%d")
end = datetime.datetime.strptime(date_end, "%Y-%m-%d")
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days+1)]
date_generated = [i.strftime("%Y-%m-%d") for i in date_generated]
merchant_and_generated_dates[i]=date_generated
all_merchants_and_generated_dates.append(merchant_and_generated_dates)
for date in date_generated:
all_statements.append(self.get_ab_trs(i,date)[0])
for statement in all_statements:
daily_statement=DailyAccountAmount(
merchant_account_id=statement['merchant_account_id'],
date=statement['date'],
balance_opened=statement['balance_opened'],
balance_closed=statement['balance_closed'],
debit_amount=statement['debit_amount'],
credit_amount=statement['credit_amount'],
total_amount=statement['total_amount'],
currency=statement['currency']
)
all_daily_statement_for_database.append(daily_statement)
try:
Session().add_all(all_daily_statement_for_database)
Session().commit()
print('Must work!')
except Exception as huston_we_have_problems:
print(huston_we_have_problems)
return all_statements
は、すべてのSELECT
クエリが生成されますが、ログに私はすべてのINSERT
クエリが表示されません。 例外はありません。すべてのコードはtry
にありますが、DBには何も追加されていません。 問題は何か、解決方法は?
'add_all()'を呼び出す前に、 'all_daily_statement_for_database'の値を印刷/ロギングしようとしましたか?おそらくそれは空のリストですか? – mhawke
@mhawkeいいえ、それは空リストではなく、私はそれを印刷し、値を含んでいます。クラスの新しいオブジェクトには必要な値が含まれています。 'for'でレコードを追加しようとしましたが、それはうまくいきません。 – Klimenkomud
あなたはおそらく(あなたは 'Session'の定義を提供していませんでした)2つの異なるセッションを作成します。インスタンスは、最初のコミットに追加されます。 'session = Session()'を試して、そこから作業してください。 –