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

officialSns マージ手順書

data/work/members.jsonofficialSns を Vercel Blob 上のメンバーデータに一括マージする手順を記述する。

  • 対象スクリプト: scripts/patch-official-sns.ts
  • 関連 Issue: #155

背景

PR #149 で data/members.jsonofficialSns フィールドを追加したが、アプリが実際に読み書きするデータは Vercel Blob 上にある。そのため、デプロイ済みアプリでは officialSns が空のまま(公式SNSセクションが非表示)となっている。

本スクリプトを 一度だけ 実行することで、Blob 上のデータに officialSns をマージする。


前提条件

.env.local に以下の環境変数が設定されていること:

変数名 説明
BLOB_READ_WRITE_TOKEN Vercel Blob の読み書きトークン(Vercel ダッシュボード > Storage > Connect から取得)
MEMBERS_BLOB_URL Blob 上の members.json の URL(Vercel ダッシュボード > Storage > Blobs から取得)

実行手順

1. 事前確認

data/work/members.jsonofficialSns が設定されていることを確認する:

cat data/work/members.json | bun -e "
  const d = await Bun.stdin.json();
  const withSns = d.members.filter(m => m.officialSns?.length > 0);
  console.log('officialSns 設定済み:', withSns.length, '件');
"

2. スクリプトを実行

bun scripts/patch-official-sns.ts

実行成功時の出力例:

30 件のメンバーに officialSns をマージしました。
Vercel Blob への書き戻しが完了しました。
officialSns のマージが完了しました。

3. 動作確認

デプロイ済みアプリで officialSns を持つメンバーの詳細ページを開き、「公式SNS」セクションが表示されることを確認する。

同期スクリプト(sync-members.yml)の次回実行ログで、SNS ドメイン限定検索が動作していることを確認する。


注意事項

  • 一回限りの操作: 本スクリプトは初期マージ用として設計されている。今後 officialSns を更新する場合は data/work/members.json を編集した上で再実行するか、Blob を直接編集すること。
  • 再実行時の上書き: Blob 側に既に officialSns が存在する場合、data/work/members.json の値で上書きされる。Vercel ダッシュボード等で Blob を直接編集した officialSns を保持したい場合は本スクリプトを再実行しないこと。
  • 上書き保存: put()allowOverwrite: true で既存 Blob を上書きする。実行前に Blob の現在の内容をバックアップしたい場合は、Vercel ダッシュボードから JSON をダウンロードしておくこと。
  • id 照合: data/work/members.json に存在しないメンバーが Blob 上にいる場合、そのメンバーの officialSns は変更されない。
  • officialSns 未設定のメンバー: ローカルで officialSns が空配列または未定義のメンバーは、Blob 上のデータも変更されない。

トラブルシューティング

BLOB_READ_WRITE_TOKEN が設定されていません

.env.localBLOB_READ_WRITE_TOKEN が設定されているか確認する。Vercel ダッシュボード > Storage > プロジェクトの Blob ストア > .env.local スニペットからコピーできる。

MEMBERS_BLOB_URL が設定されていません

.env.localMEMBERS_BLOB_URL が設定されているか確認する。同スニペットに含まれている。

Vercel Blob からのデータ取得に失敗しました

MEMBERS_BLOB_URL が正しい URL を指しているか確認する。Vercel ダッシュボード > Storage > Blobs で members.json の URL を確認すること。

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