LOAD文実行時にWARNINGが発生したとき、WARNING内容をINFOでログ出力して、例外スローするように改修
This commit is contained in:
parent
0390e23ca8
commit
7a9293187f
@ -27,7 +27,7 @@ class VjskDataLoadManager:
|
||||
# orgをtruncate
|
||||
db.execute(f"TRUNCATE TABLE {table_name_org};")
|
||||
|
||||
# orgにload ※warningは1148エラーになるらしい
|
||||
# orgにload ※warningが発生すれば異常終了させる
|
||||
sql = f"""\
|
||||
LOAD DATA LOCAL INFILE :src_file_name
|
||||
INTO TABLE {table_name_org}
|
||||
@ -37,6 +37,14 @@ class VjskDataLoadManager:
|
||||
"""
|
||||
result = db.execute(sql, {"src_file_name": src_file_name})
|
||||
logger.debug(sql)
|
||||
# MEMO : sqlalchemy(engine=pymysql)としたときの result.context.cursor は、engineに依存してクラスが異なる
|
||||
# https://nds-tyo.backlog.com/view/NEWDWH2021-1006#comment-266127218
|
||||
if result.context.cursor._result.warning_count > 0:
|
||||
result_w = db.execute("SHOW WARNINGS;")
|
||||
for row in result_w.fetchall():
|
||||
logger.info(f"SHOW WARNINGS : {row}")
|
||||
raise Exception("LOAD文実行時にWARNINGが発生しました。")
|
||||
|
||||
logger.info(f'{data_name}tsvファイルを{table_name_org}にLOAD : 件数({result.rowcount})')
|
||||
|
||||
# org→srcにinsert select
|
||||
|
||||
@ -1208,7 +1208,7 @@ class TestImportFileToDb:
|
||||
VjskDataLoadManager.load(target_dict)
|
||||
|
||||
# 検証
|
||||
assert str(e.value).startswith("SQL Error:") > 0
|
||||
assert str(e.value).startswith("LOAD文実行時にWARNINGが発生しました。") > 0
|
||||
|
||||
# teardown
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user