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)
|
upsert_sql = mapper.get_upsert_sql(condkey)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
db.connect() # TODO:接続オプション local_infile = True が必要?
|
db.connect()
|
||||||
db.begin()
|
|
||||||
|
|
||||||
# orgをtruncate
|
# orgをtruncate
|
||||||
db.execute(f"TRUNCATE TABLE {table_name_org};")
|
db.execute(f"TRUNCATE TABLE {table_name_org};")
|
||||||
@ -32,18 +31,19 @@ class JjskDataLoadManager:
|
|||||||
logger.info(f'tsvデータをorgテーブルにLOAD : 件数({result.rowcount})')
|
logger.info(f'tsvデータをorgテーブルにLOAD : 件数({result.rowcount})')
|
||||||
|
|
||||||
# org→srcにinsert select
|
# org→srcにinsert select
|
||||||
|
db.begin()
|
||||||
result = db.execute(upsert_sql)
|
result = db.execute(upsert_sql)
|
||||||
logger.info(f'orgテーブルをsrcテーブルにUPSERT : 件数({result.rowcount})')
|
logger.info(f'orgテーブルをsrcテーブルにUPSERT : 件数({result.rowcount})')
|
||||||
|
|
||||||
db.commit()
|
db.commit()
|
||||||
except Exception as e: # TODO:DB例外だけキャッチしたい
|
except Exception as e:
|
||||||
db.rollback()
|
db.rollback()
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
raise e
|
raise e
|
||||||
finally:
|
finally:
|
||||||
db.disconnect()
|
db.disconnect()
|
||||||
|
|
||||||
logger.debug("_import_to_db end")
|
logger.debug("_import_to_db done")
|
||||||
return
|
return
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user