13 運用手順
13.1 バックアップ
- 自宅鯖の cron(アプリ内)で PostgreSQL をダンプし GitHub へ自動 push
- 実行頻度:日次
手動バックアップ
# PostgreSQL ダンプ
pg_dump -U <user> <dbname> > backup_$(date +%Y%m%d).sql
# GitHub へ push
git add backup_*.sql
git commit -m "backup: $(date +%Y-%m-%d)"
git push origin main
13.2 DB マイグレーション
drizzle-orm を使用。環境ごとに対象 DB が異なる。
# PostgreSQL(自宅鯖)
pnpm --filter @robot-bot/db migrate:postgres
# Turso
pnpm --filter @robot-bot/db migrate:turso
# D1
pnpm --filter @robot-bot/db migrate:d1
マイグレーションは各環境に順番に適用すること。
13.3 アプリケーション再起動
# BOT 再起動
cd apps/bot
pnpm restart
# 自宅鯖 API 再起動
cd apps/api
pnpm restart
# WebUI 再起動
cd apps/web
pnpm restart
プロセス管理ツール(PM2 など)を使用している場合はそれに従う。
13.4 ロールバック
DB マイグレーションのロールバック
drizzle-orm のマイグレーションロールバックコマンドを使用。
# ロールバック(1 つ前に戻す)
pnpm --filter @robot-bot/db rollback:postgres
pnpm --filter @robot-bot/db rollback:turso
pnpm --filter @robot-bot/db rollback:d1
アプリケーションのロールバック
# 前バージョンの Git タグに戻す
git checkout <tag>
pnpm install
pnpm build
pnpm restart
13.5 Turso / D1 全量再同期
CF 障害復旧時または手動で再同期が必要な場合。
# PostgreSQL → Turso + D1 全量再同期
pnpm --filter @robot-bot/db sync:all
13.6 メンテナンスポリシー
- DB マイグレーション・再起動などはコマンド手順ベースで実施
- 細かく手動操作できるように手順を整備(自動化より手動制御を優先)
- 当番者連絡フローは定めない(ロールバック手順のみ記載)