circle-search-26-api / scripts /2_create_projects_data.py
ktsn-ud
codex: DB連携・スキーマ変更に係る各所の変更
fa87959
Raw
History Blame Contribute Delete
1.21 kB
import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
from utils.logger import setup_logger
from utils.json import get_file_path_from_config
from utils.json import json_dumps
from app.repositories.projects_repository import ProjectsRepository
# --- ロギングの設定 ---
log = setup_logger(__name__)
def main():
"""DB から企画データを取得し projects.json を生成する。"""
log.info("企画データをDBから取得してprojects.jsonを生成します。")
output_json_path = get_file_path_from_config(
"projects.output_json", "data/generated/projects.json"
)
try:
repository = ProjectsRepository()
projects = repository.list_projects()
except Exception as exc:
log.error(f"企画データの取得に失敗しました: {exc}")
sys.exit(1)
project_dicts = [project.model_dump(mode="json") for project in projects]
os.makedirs(os.path.dirname(output_json_path), exist_ok=True)
json_dumps(project_dicts, output_json_path)
log.info(f"企画データの生成が完了しました: {output_json_path}")
sys.exit(0)
if __name__ == "__main__":
main()