データベースモデル
スタジオがデータをどこにどの形で保存しているかをまとめたドキュメントです。バックアップの範囲を決めたり、直接クエリを実行する必要があるときに参照します。
PostgreSQL にメタデータが格納され、ファイルシステム(DATA_ROOT)にアプリケーションソースとビルド成果物が格納されます。どちらも取得しないと復旧できません — DB だけでは アプリケーションコードがなく、ファイルだけでは誰が何を作ったかがわかりません。
| ストレージ | 格納内容 |
|---|---|
| PostgreSQL | ユーザー・アプリメタデータ・会話・監査・ウォッチャー・スキル |
ファイルシステム (DATA_ROOT) | ワークスペース(アプリソース)・ビルド成果物・状態 |
PostgreSQL は2つのモードのいずれかです — バンドルコンテナ(デフォルト)またはプラットフォーム共有 PG。 環境変数リファレンスを参照してください。
テーブル — 11個
| グループ | テーブル | 格納内容 |
|---|---|---|
| ユーザー | studio_users | アカウント・ロール(admin/builder/viewer)・パスワードハッシュ |
studio_tokens | 発行されたトークン | |
| 会話 | ask_conversations | チャットスレッド |
ask_history | 送受信メッセージと処理時間 | |
| ウォッチャー | watchers | 定期監視定義とアラーム設定 |
notification_seen | アラーム確認状態 | |
| スキル | skills | 現場ノウハウの登録版 |
| デプロイ | deploy_log | デプロイ履歴 |
| 監査・使用量 | audit_log | 誰が何をしたか |
usage_log | AI トークン使用量 | |
| スキーマ | schema_migrations | 適用されたマイグレーション名と実行時刻 |
watchers は過去には flows でした2026-07-13 に名前を統一しました(ALTER TABLE flows RENAME TO watchers、データ保持)。
新規インストールも flows で作成した後、リネームする手順を踏みます — マイグレーション履歴は過去の記録であるため変更しないからです。直接クエリを書く場合は watchers です。
スキーマ変更はマイグレーションで管理されます
サーバー起動時に src/infra/db/migrations/ の .sql を番号順に適用し、適用したファイル名を schema_migrations に記録します。既に適用されたものは再度実行されません。
-- 지금 어디까지 적용됐는지
SELECT name, applied_at FROM schema_migrations ORDER BY name;
schema_migrations と実際のスキーマがズレると、次のアップグレード時にマイグレーションが
「既存のものを作ろうとする」エラーで失敗します。UI 全体が起動できなくなります。
アップグレード前は必ずバックアップを取ってください → バックアップと復旧。
ファイルシステム — DATA_ROOT
デフォルト値は /var/lib/pp-studio です。以下はすべてこのディレクトリ内に格納されます。
| 格納内容 | ない場合 |
|---|---|
| アプリワークスペース(生成されたソース) | アプリを開けません — DB にはメタデータのみです |
| ビルド成果物 | 再ビルドすればよいです |
| セッション・状態 | 進行中の作業が失われます |
| バンドル PG データ | COMPOSE_PROFILES=bundled-pg インストールでは DB 本体がここに있습니다 |
DATA_ROOT がすなわち DB バックアップですバンドルモードでは PostgreSQL データディレクトリも DATA_ROOT 配下にあります。つまりこのパスを見落とすと DB とアプリソースを同時に 失います。
バックアップで見落としやすいもの
| 取得すべきもの | 落とすと |
|---|---|
| PostgreSQL ダンプ | アカウント・ウォッチャー・会話・監査ログが失われる |
DATA_ROOT | アプリソースが失われ アプリを開けなくなる |
/etc/kopens/plantpulse-studio.env | 接続情報・キーを再入力する必要がある |
バックアップはあるが復旧したことがない状態が最も危険です。手順は バックアップと復旧に記載されています。
関連ドキュメント
- バックアップと復旧
- 環境変数リファレンス — DB モードと
DATA_ROOT - パスワード・API キー変更 —
PG_PASSWORDローテーション - 初期パスワード変更 — ブートストラップ管理者アカウント