transabtion張ってLOADしたあとのUPSERTがコケたときに、orgがロールバックされないようにする
This commit is contained in:
parent
1bff52f8c7
commit
7a1941a7bc
@ -19,8 +19,7 @@ class JjskDataLoadManager:
|
||||
upsert_sql = mapper.get_upsert_sql(condkey)
|
||||
|
||||
try:
|
||||
db.connect() # TODO:接続オプション local_infile = True が必要?
|
||||
db.begin()
|
||||
db.connect()
|
||||
|
||||
# orgをtruncate
|
||||
db.execute(f"TRUNCATE TABLE {table_name_org};")
|
||||
@ -32,18 +31,19 @@ class JjskDataLoadManager:
|
||||
logger.info(f'tsvデータをorgテーブルにLOAD : 件数({result.rowcount})')
|
||||
|
||||
# org→srcにinsert select
|
||||
db.begin()
|
||||
result = db.execute(upsert_sql)
|
||||
logger.info(f'orgテーブルをsrcテーブルにUPSERT : 件数({result.rowcount})')
|
||||
|
||||
db.commit()
|
||||
except Exception as e: # TODO:DB例外だけキャッチしたい
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
logger.error(e)
|
||||
raise e
|
||||
finally:
|
||||
db.disconnect()
|
||||
|
||||
logger.debug("_import_to_db end")
|
||||
logger.debug("_import_to_db done")
|
||||
return
|
||||
|
||||
@classmethod
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user