本番データ(DB+アップロード画像)のlocalhost限定バックアップ/リストア #25
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
本番用SQLite DBに葬儀情報が保存されている。DBだけでなく、DBから参照する領収書/見積/芳名録画像も含むバックアップと復元手段が必要。アプリは現状認証なしでLAN/Tailscaleから利用されるため、バックアップ取得・復元はlocalhostに限定する。
承認済み仕様
sougi.db)とinstance/uploads/の画像.envは含めない。DBにはカスタムOCRプロバイダのAPIキーが保存されるため、ダウンロードZIPが機密情報を含む警告を表示.envバックアップ・別PCへの自動転送・アプリ内での即時リストアは対象外受け入れ条件
.envや任意ファイルは含まれないバックアップ/リストア仕様書を作成し、ブランチ
docs/backup-restore-specへコミットしました(commit217917f)。実装前のレビュー待ちです。承認済みバックアップ仕様から実装計画を作成しました。現在は実装前レビュー待ちです。テストでは常に一時DB/一時uploadsだけを使い、本番DBへの読み書きは行いません。
方針を簡素化しました。
仕様書/計画を commit
5554e07に反映済み。実装は未着手で、本番DBは開いていません。実装完了(ブランチ
feature/database-backup-restore→ ローカルmainへマージ, commitb379e86)。/settings/backup/downloadでlocalhostダウンロードRESTORE確認付きで予約→次回起動時に現DB/uploadsをpre-restore.zipへ退避して置換.env除外。loopback/同一origin以外は403リモートpushは未実施のため、このissueはpush時にクローズします。
実装完了としてクローズします。設定画面からlocalhost限定でDB+uploadsのZIPを予約作成・ダウンロード、復元ZIPは検証して予約し次回起動時に退避ZIPを作って置換、失敗時は直前ZIPへ復旧します。ローカルmainへマージ済み(pushは未実施)。