feat:不要部分削除(ユニットテスト部分)、readmeタイトル修正、エラー発生時のログレベル修正、JskultArchiveManagerのログメッセージ修正、ドキュメンテーションコメント追加、SQLの条件の値パラメータに変更、無駄なスペース削除

This commit is contained in:
yono 2025-05-28 10:27:46 +09:00
parent f4a7638ae1
commit 2a076e69c9
4 changed files with 26 additions and 38 deletions

View File

@ -3,12 +3,6 @@ url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[scripts]
"test:ultmarc" = "pytest tests/batch/ultmarc/"
"test:ultmarc:cov" = "pytest --cov=src/batch/ultmarc/ --cov-branch --cov-report=term-missing tests/batch/ultmarc/"
"test:vjsk" = "pytest tests/batch/vjsk/"
"test:vjsk:cov" = "pytest --cov=src/batch/vjsk/ --cov-branch --cov-report=term-missing tests/batch/vjsk/"
[packages]
boto3 = "*"
PyMySQL = "*"

View File

@ -1,4 +1,4 @@
# 実消化&アルトマーク 日次バッチ
# 実消化過去データアーカイブ処理
## 概要
@ -45,19 +45,6 @@
- 実際の処理は、「src/jobctrl_daily.py」で行っている。
### テスト準備
- VSCodeで以下の拡張機能をインストールする
- Python
- Python Test Explorer for Visual Studio Code
- Test Explorer UI
- VSCode 上でショートカット「ctrl」+「shift」+「P」でコマンドパレットを開く
- コマンドパレットの検索窓に「Python」と入力し、「Python: テストを構成する」を押下する
- 現在のワークスペースを選び、「pytest」を選択する
- 「tests」フォルダを選択する
- バックグランドで、pytest モジュールのインストールが始まれば成功
## フォルダ構成
```text

View File

@ -11,6 +11,7 @@ import zipfile
logger = get_logger("実消化_過去データアーカイブ処理")
def exec():
"""実消化_過去データアーカイブ処理"""
try:
logger.info("処理開始:実消化_過去データアーカイブ処理")
jskult_archive_manager = JskultArchiveManager()
@ -59,4 +60,4 @@ def exec():
logger.info(f"アーカイブ管理テーブルの更新に成功しました。対象テーブル:{jskult_archive_manage_data['target_table']}")
logger.info("処理終了:実消化_過去データアーカイブ処理")
except Exception as e:
logger.info(f"異常終了:実消化_過去データアーカイブ処理 {e}")
logger.exception(f"異常終了:実消化_過去データアーカイブ処理 {e}")

View File

@ -8,8 +8,9 @@ class JskultArchiveManager:
self._db = Database.get_instance()
def get_archive_manage(self):
"""対象テーブル、対象項目、対象年月、実行間隔(月)、前回対象年月、保存先を取得"""
try:
logger.info("処理開始:アーカイブ管理テーブル取得")
logger.info("処理開始:get_archive_manage")
sql = """
select
target_table
@ -23,60 +24,65 @@ class JskultArchiveManager:
"""
self._db.connect()
jskult_archive_manage_data = self._db.execute_select(sql)
logger.info("処理終了:アーカイブ管理テーブル取得")
logger.info("処理終了:get_archive_manage")
return jskult_archive_manage_data
except Exception as e:
logger.info("異常終了:アーカイブ管理テーブル取得")
logger.info("異常終了:get_archive_manage")
raise
finally:
self._db.disconnect()
def get_archive_data(self,target_table:str, filter_column:str, filter_date:str):
"""アーカイブするデータを取得"""
try:
logger.info("処理開始:アーカイブデータ取得")
logger.info("処理開始:get_archive_data")
sql = f"""
select
*
from
src07.{target_table}
where
str_to_date({filter_column},'%Y%m%d') <= '{filter_date}';
str_to_date({filter_column},'%Y%m%d') <= :filter_date;
"""
self._db.connect()
target_table_data = self._db.execute_select(sql)
logger.info("処理開始:アーカイブデータ終了")
parameter_dict = {'filter_date' : filter_date}
target_table_data = self._db.execute_select(sql, parameter_dict)
logger.info("処理終了get_archive_data")
return target_table_data
except Exception as e:
logger.info("異常終了:アーカイブ管理テーブル取得")
logger.info("異常終了:get_archive_data")
raise
finally:
self._db.disconnect()
def delete_archive_data(self, target_table:str, filter_column:str, filter_date:str):
"""アーカイブしたデータを削除"""
try:
logger.info("処理開始:アーカイブ後データ削除")
logger.info("処理開始:delete_archive_data")
sql = f"""
delete from
src07.{target_table}
where
str_to_date({filter_column},'%Y%m%d') <= '{filter_date}';
str_to_date({filter_column},'%Y%m%d') <= :filter_date;
"""
self._db.connect()
self._db.begin()
self._db.execute(sql)
parameter_dict = {'filter_date' : filter_date}
self._db.execute(sql, parameter_dict)
self._db.commit()
logger.info("処理終了:アーカイブ後データ削除")
logger.info("処理終了:delete_archive_data")
return
except:
self._db.rollback()
logger.info("異常終了:アーカイブ後データ削除")
logger.info("異常終了:delete_archive_data")
raise
finally:
self._db.disconnect()
def update_archive_manage(self, target_table:str):
"""アーカイブ管理テーブルの指定した対象テーブルのレコードを更新する"""
try:
logger.info("処理開始:アーカイブ管理テーブル条件年月更新")
logger.info("処理開始:update_archive_manage")
sql = f"""
update internal07.jskult_archive_manage
set
@ -84,7 +90,7 @@ class JskultArchiveManager:
, filter_date = LAST_DAY(
DATE_ADD(filter_date, INTERVAL run_interval_months MONTH)
)
, upd_user = CURRENT_USER ()
, upd_user = CURRENT_USER()
, upd_date = NOW()
where
target_table = '{target_table}';
@ -93,11 +99,11 @@ class JskultArchiveManager:
self._db.begin()
self._db.execute(sql)
self._db.commit()
logger.info("処理終了:アーカイブ管理テーブル条件年月更新")
logger.info("処理終了:update_archive_manage")
return
except:
self._db.rollback()
logger.info("異常終了:アーカイブ管理テーブル条件年月更新")
logger.info("異常終了:update_archive_manage")
raise
finally:
self._db.disconnect()