diff --git a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py index 61f287c5..f869b983 100644 --- a/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py +++ b/ecs/jskult-batch-daily/src/batch/vjsk/vjsk_data_load_manager.py @@ -35,17 +35,18 @@ class VjskDataLoadManager: ENCLOSED BY '\"' IGNORE 1 LINES; """ + db.begin() 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}") + result_w = db.execute("SHOW WARNINGS;") + has_mysql_warnings = False + for row in result_w.fetchall(): + has_mysql_warnings = True + logger.info(f"SHOW WARNINGS : {row}") + if has_mysql_warnings: raise Exception("LOAD文実行時にWARNINGが発生しました。") - + logger.debug(sql) logger.info(f'{data_name}tsvファイルを{table_name_org}にLOAD : 件数({result.rowcount})') + db.commit() # org→srcにinsert select db.begin() diff --git a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py index a5cfd370..2dbe2ef5 100644 --- a/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py +++ b/ecs/jskult-batch-daily/tests/batch/vjsk/vjsk_load/test_vjsk_load.py @@ -35,6 +35,7 @@ class TestImportFileToDb: self.db = database self.db.connect() + self.db.execute("set sql_mode = 'TRADITIONAL';") # self.db.begin() # testing