feat:不要部分削除(ユニットテスト部分)、readmeタイトル修正、エラー発生時のログレベル修正、JskultArchiveManagerのログメッセージ修正、ドキュメンテーションコメント追加、SQLの条件の値パラメータに変更、無駄なスペース削除
This commit is contained in:
parent
f4a7638ae1
commit
2a076e69c9
@ -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 = "*"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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}")
|
||||
@ -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()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user