コンテンツにスキップ

家庭一覧だけを整理するアーカイブ:配備記録(2026-09-22)

状態:2026-09-22 06:21:12 JST、本番反映完了。ユーザーのsudo認証で06:15:31 JSTに開始した。完了記録と現在の実機のcommit・image・Compose・deployment.jsonを独立して照合済み。起動コマンドの再実行は不要。

ユーザーはモック合意・実装確認後、「本番環境に反映してください」と依頼した。

確定版と現在の本番

  • 本番基準:8ec32083aed01256263dbad4237157ea729abcbc。
  • 配備済み:5dec9cf39da19f1ddcff82eadeaa0fac85bac162。上記本番基準を直接の親とする。
  • push済みブランチ:codex/family-archive-list-only-20260922-production。
  • ソース:.local-dev/family-archive-implementation/source。
  • 固定配備ファイル:.local-dev/truenas-family-archive-list-only-20260922/bundle。
  • 実機専用ディレクトリ:/home/truenas_admin/family-archive-list-only-20260922-5dec9cf。
  • 実機サービス名:hoikuict-family-archive-list-only-20260922-5dec9cf。
  • 基準Composeハッシュ:a15583b8d1edf8b23827986068b6e95af2eba17992ef91c6ab212cf128a2db3b。
  • 基準deployment.jsonハッシュ:b5eea6007410b308141cf5a68133f3d7427e6779fc0544b66009aba40250c73f。

転送の前後にSSHで上記の実機状態を確認した。開発ブランチ全体を配備せず、既存の本番機能、バックアップ形式1、復元サービス、設定値を保持する。今回DBスキーマとバックアップ形式は変更しない。

事前検証

  • アーカイブ、継続利用、削除、CSV、保護者同期・ログイン・初回入力、請求、権限、写真、復元など21モジュールの222テスト成功(163.70秒)。これは起動前のローカル結果。実機での結果は末尾に記載する。
  • 配備処理の設定保持、未完了ジョブ中の停止拒否、正常切替・失敗時の両ワーカー復旧、既存アーカイブ状態・履歴を持つDBの保持、スキーマ差異時の停止を6テストで確認。Windowsと実機Linuxの両方で成功。
  • 実機で使う読み取り専用の画面検査を、架空の通常・アーカイブ済み・復帰済みの3状態で実行。既存履歴と在園児がある場合も検査が成功し、検査前後のDB内容が同じことを確認した。
  • 転送した13入力ファイルとUPDATE.jsonのSHA256、Python構文を実機で検証。固定ソース349ファイルのハッシュを記録した。
  • 本番家庭のアーカイブ・復帰・削除操作は行っていない。

起動後の処理

  1. 稼働中の本番ソース347ファイルと設定を照合し、基準に差異があれば停止する。
  2. 固定ソースからイメージを作り、349ファイルを照合する。ネットワーク無効の使い捨てコンテナで222件のアプリテストと実プロセスによる復元演習を行う。
  3. 本番DBのコピーで起動・既存データ保持・画面描画・アーカイブ済み家庭の編集可能性・CSV出力を検証し、保存済みバックアップとの互換性を確認する。
  4. 検証後に公開接続を短時間止め、実行中バックアップを待つ。復元キューロック下で未完了ジョブがないことを確認し、アプリと両ワーカーを停止する。
  5. ZFSスナップショット、主DB、施設文例DB、設定を退避し、新版に切り替える。既存の73テーブル(アーカイブ履歴を含む)、添付、バックアップ設定、DBスキーマを照合する。
  6. 全家庭の一覧・アーカイブまたは復帰確認・編集・記録参照を読み取り専用で検査する。利用中の紐づけが保存の妨げにならないこと、24列の家庭CSV、閲覧専用職員の制限、実行中ソース349ファイルを確認して公開を再開する。

今回の失敗時の復旧は旧コード・設定への切戻しであり、DBの巻戻しは行わない。既存のアーカイブ状態・履歴を含め、DB内の記録をそのまま残す。スキーマの差異があれば自動切戻しを停止して保守状態と退避物を保持する。公開再開後のデータ自動巻戻しもしない。

起動と完了確認

sudo -n true が sudo: a password is required を返したため、ユーザーによる対話認証で起動した。配備自体は依頼済みで、追加の仕様承認は求めていない。

ユーザーがWindowsのPowerShellで実行済みのコマンド(再実行不要):

ssh -t truenas_admin@100.65.124.96 "sudo python3 /home/truenas_admin/family-archive-list-only-20260922-5dec9cf/start-systemd.py"

前回・今回の起動コマンドは再実行しない。専用ディレクトリの status.json の complete を確認後、.local-dev/truenas-family-archive-list-only-20260922/capture_completion.py で本番のcommit・image・Compose・deployment.jsonを独立して照合した。

本番反映の結果

  • 完了:2026-09-22 06:21:12 JST。独立照合:06:21:17 JST。
  • 実機イメージ:sha256:5ce3a55b509ec568d1ec68b30126a34ba350745ad3c941931a0758b55dda6acf。
  • Compose:a15583b8d1edf8b23827986068b6e95af2eba17992ef91c6ab212cf128a2db3b(変更なし)。
  • 更新後deployment.json:76ca662535f4369110a95e3b1f64dab9679c555c9120af5b27e562cd985ef3a6。
  • 本番ソース:/mnt/main/open-hoikuict-pilot/releases/5dec9cf39da1-20260921T211531Z。起動後の349ソースファイルのハッシュも検証済み。
  • 実機の隔離コンテナで222テストすべて成功。失敗・スキップ・収集エラーは0件。
  • 実プロセスによる復元・保守状態・CSRF・再認証・再ログイン等の演習、本番DBコピーの検証、既存バックアップ5件の互換性検証が成功。
  • アプリ、gateway、backup-worker、restore-workerが正常。公開用tunnelを再開済み。
  • 更新前の73テーブルの内容と添付8ファイルを保持。家庭148件、園児99件、保護者アカウント7件を維持。
  • 全148家庭の一覧・アーカイブ確認・編集・記録画面を読み取り専用で検査。利用が続く紐づけがある94家庭を含め、148家庭すべてでアーカイブ確認トークンが発行されることを確認。編集画面でも園児・保護者の選択を保持した。
  • 回答・初回入力記録のある5家庭を引き続き参照可能。家庭CSVの24列と各出力範囲、閲覧専用職員のアーカイブ・復帰拒否を確認。
  • 配備による家庭のアーカイブ・復帰・削除は0件。完了時点では通常表示148件、アーカイブ済み0件、操作履歴0件を保持。
  • 定期バックアップは更新直前と同じ「無効・毎日02:00 JST・weekday=0」を保持。配備で無効にしたものではない。
  • 直前退避:/mnt/main/open-hoikuict-pilot/backups/before-family-archive-list-only-20260921T211531Z。
  • ZFS snapshot:main/open-hoikuict-pilot/runtime@before-family-archive-list-only-20260921T211531Z。

完了記録は .local-dev/truenas-family-archive-list-only-20260922/bundle/completed-status.json、live-after.json、verified-completion.json に保存した。

利用者は本番の「家族・兄弟姉妹の管理」を再読み込みする。紐づけを残したまま「アーカイブ」でき、家庭の一覧だけが整理される。園児・保護者の利用は続き、「アーカイブ済み」から通常表示へ戻せる。

本番の検査はアプリ内での読み取り専用描画・データ照合による。実際の家庭を使うアーカイブ・復帰操作や、保護者としてログインするブラウザー試験は行っていない。継続利用の操作は隔離した架空データで検証した。