ツアー・ライブ日程登録 運用手順
概要
新しいツアーの公演日程を scripts/console/register-tour-lives.ts を使って Neon(tours・lives・venues テーブル)へ登録する手順。関連: #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が以下を行う:
data/inputs/lives.csv中の各会場名をvenuesテーブル(またはシード元のdata/samples/venues.csv)と照合する- 一致しない会場名があれば、Web検索で「(会場名) 住所 緯度経度」を調べ、住所から都道府県のJIS 2桁コードを判定する
- 調査結果を
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 |
tours・lives・venues テーブル設計書 |