コンテンツにスキップ
Documents for MorningStatusApp
Esc
移動開く⌘Jプレビュー
このページの内容

ツアー・ライブ日程登録 運用手順

概要

新しいツアーの公演日程を scripts/console/register-tour-lives.ts を使って Neon(tourslivesvenues テーブル)へ登録する手順。関連: #1305

対象テーブルの定義は docs/design/live/live-data-design.mdx を参照。


役割分担

# ステップ 担当 内容
1 CSV準備 ユーザー 下記フォーマットで data/inputs/lives.csv を用意し共有する
2 未登録会場チェック Claude venues テーブルと突き合わせ、未登録の会場名を洗い出す
3 補助データ作成 Claude 未登録会場についてWeb検索で都道府県・緯度経度を調査し data/inputs/new-venues.csv を作成する
4 スクリプト実行 Claude register-tour-lives.ts を実行し、Neonへ登録する
5 結果確認 ユーザー / Claude 登録件数・エラーの有無を確認する

ユーザーが用意するのは手順1のCSVのみでよい。会場の都道府県・座標調査(手順2・3)はClaude側で毎回対応する。


手順1: 入力CSVフォーマット(data/inputs/lives.csv

  • 1行目: tourId,title(ツアーID・ツアータイトル)
  • 2行目以降: date,time,venueName(開催日・開場時間・会場名)の繰り返し
2026C,モーニング娘。'26 コンサートツアー秋「超 Heartful 11」
2026-09-05,13:30,和光市民文化センター
2026-09-05,17:30,和光市民文化センター
2026-09-06,13:00,和光市民文化センター
2026-09-12,13:30,レクザムホール
  • tourId は年 + 識別子(例: 2026C)。既存の tourId を指定した場合はタイトルを更新するのみで、既存公演は変更しない
  • 日付は YYYY-MM-DD、時刻は HH:MM(24時間表記)
  • data/inputs/lives.csv は一時データであり、コミット対象外(実行のたびに用意する)

手順2〜3: 未登録会場のチェックと補助データ作成

register-tour-lives.ts は会場名を venues テーブルと完全一致で照合する。一致しない会場名があると、都道府県が決まらず venue_id(都道府県2桁+連番3桁)を採番できないため、スクリプトはエラーで停止し未登録の会場名を列挙する。

このため、実行前にClaudeが以下を行う:

  1. data/inputs/lives.csv 中の各会場名を venues テーブル(またはシード元の data/samples/venues.csv)と照合する
  2. 一致しない会場名があれば、Web検索で「(会場名) 住所 緯度経度」を調べ、住所から都道府県のJIS 2桁コードを判定する
  3. 調査結果を data/inputs/new-venues.csv にまとめる(同じく一時データ・コミット対象外)
name,prefecture,latitude,longitude
和光市民文化センター,11,35.781454,139.606979
水戸市民会館,08,36.379155,140.464872
  • prefecture はJIS 2桁コード(都道府県コード変換テーブル prefecture_codes の値と対応。例: 東京都=13、埼玉県=11
  • venue_id はスクリプト側が都道府県ごとの既存連番から自動採番するため、本ファイルには含めない
  • 未登録会場がない場合、本ファイルは不要(用意しなくてよい)

手順4: スクリプト実行

# .env.local に DATABASE_URL(Neon接続文字列)を設定しておくこと
bun run scripts/console/register-tour-lives.ts

スクリプトの動作

  • tours: tourId で upsert(既存なら title を更新、無ければ新規作成)
  • venues: 会場名で検索し、一致すれば既存 venueId を使用。無ければ data/inputs/new-venues.csv から都道府県別の連番を採番して新規作成
  • lives: 同一 tourId 内で (date, time, venueId) が既存と一致する公演はスキップする(冪等)。一致しなければ tourId + 3桁連番live_id を採番して新規作成

冪等な設計のため、同じCSVを誤って複数回実行しても重複登録されない。また、後日追加公演が発表された場合も、既存分を含む更新後のCSVで再実行すれば差分(追加公演)のみ登録される。

data/samples/*.csv(初回一括シード用データ)への書き戻しは行わない。prisma/seed.ts(フル再シード)は初期構築・災害復旧用の別系統であり、本スクリプトによる追加分は対象外となる。


手順5: 結果確認

実行ログに以下が出力される:

  • 新規作成したツアー(あれば)
  • 新規作成した会場(件数・名称)
  • 新規作成した公演(件数)
  • 既存のためスキップした公演(件数)

エラーで停止した場合は「未登録の会場名」が列挙されるため、手順2〜3に戻って data/inputs/new-venues.csv を追加・修正してから再実行する。


関連ファイル

ファイル 役割
scripts/console/register-tour-lives.ts 登録スクリプト本体
data/inputs/lives.csv 入力(ツアー・公演日程、一時データ)
data/inputs/new-venues.csv 入力(新規会場の都道府県・座標、一時データ、必要な場合のみ)
docs/design/live/live-data-design.mdx tourslivesvenues テーブル設計書

このページは役に立ちましたか?