地域段階展開 (Phase 3-1)
Parky 公開ポータルは「在庫・データ品質が揃った都道府県から順に解禁する」運用を取る。
制御ポイント
環境変数 PUBLIC_PUBLISHED_PREFECTURES を build 時に渡すことで、
公開対象の都道府県 slug を絞り込む。
- 未設定 /
*: 全都道府県を公開 (既定) - CSV 指定 (
tokyo,kanagawa,osaka): そこに含まれる都道府県のみ公開 - 空文字列
"": 全都道府県を公開 (= 未設定と同義)
src/lib/site-config.ts の PUBLISHED_PREFECTURES と
isPrefecturePublished() が制御の中枢。
fetchPublishableStationHubs() がこのホワイトリストでハブを封印し、
結果として:
- 該当 prefecture の駅ハブ →
/p/{pref}/...以下が 1 ページも生成されない - 属性フィルタ / スポット詳細 / シーン特集のランキング / メディア記事の 関連リンクからも自然に除外される
- sitemap も空 (dev 環境の既存挙動と同じ)
段階展開プラン
プラン curious-squishing-bumblebee.md の Phase 3 に沿って、
以下の順で解禁する想定:
- tokyo (Phase 1-2 の主戦場、既に検証済み)
- kanagawa (横浜駅・川崎駅の在庫が揃い次第)
- osaka (梅田・なんば駅)
- aichi (名古屋駅)
- fukuoka (博多駅・天神)
- hokkaido (札幌駅)
- 以降、全国 47 都道府県
ワークフローへの組み込み方
prod (parky.co.jp) 用 workflow
.github/workflows/deploy-public-prod.yml 新設時に以下を追加:
- name: Build
env:
PUBLIC_SITE_URL: https://parky.co.jp
PUBLIC_PUBLISHED_PREFECTURES: tokyo,kanagawa
PUBLIC_SUPABASE_URL: ${{ env.SUPABASE_URL_PROD }}
PUBLIC_SUPABASE_ANON_KEY: ${{ env.SUPABASE_ANON_KEY_PROD }}
run: npm run build -w portal/public
PUBLIC_PUBLISHED_PREFECTURES を更新してコミットするだけで、
次回デプロイから新しい地域が自動的に解禁される。
dev (dev.parky.co.jp) 用 workflow
既存 deploy-public-dev.yml の Build ステップに同じ env を追加。
dev は検証目的なので全解禁 (* or 未設定) を推奨。
新地域解禁時のチェックリスト
- ✅ 該当 prefecture の
cities/stationsテーブルに seed 投入済み - ✅
parking_lot_nearby_spotsの rebuild バッチを回し、近隣駅情報が埋まっている - ✅
hub_inventory_statsMV をREFRESH MATERIALIZED VIEWで更新 - ✅ 在庫 5 件以上の駅が十分にあるか (最低 10 駅目安)
- ✅ dev で build し、
/p/{pref}/配下のページが期待通り生成されるか目視確認 - ✅
PUBLIC_PUBLISHED_PREFECTURESに slug を追加 - ✅ prod デプロイ後、sitemap に新 URL が含まれているか確認
- ✅ Search Console の URL 検査で 1-2 ページのインデックス申請
切り戻し
問題が見つかった場合、PUBLIC_PUBLISHED_PREFECTURES から該当 slug を
外して再デプロイすれば即座に封印できる。
URL はそのまま 404 になるため、Google には「削除された URL」として
処理される。インデックスされた URL が気になる場合は、
Search Console から一時削除リクエストを出すことも可能。