コンテンツにスキップ

データ移行影響分析

概要

tracer-data-migration/backend/配下の移行スクリプト(kan.pyjin.py)が更新するテーブルと、それらを参照するPHPアプリケーション機能を特定し、メンテナンスページ表示が必要な画面を明確化します。

移行スクリプトが更新するテーブル

肝臓移行スクリプト(kan.py)

テーブル名 用途 処理内容
T_ISHOKU_KIHON_LIV 生体移植基本情報 INSERT/UPDATE
T_TRACER_IKO TRACER移行管理 INSERT
T_ISHOKU_KIHON_LIVER_LIV 生体肝臓移植詳細 INSERT/UPDATE
T_DONOR_LIV ドナー基本情報 INSERT/UPDATE
T_DONOR_LIVER_LIV 肝臓ドナー詳細 INSERT/UPDATE
T_NYURYOKUJOKYO_LIV 入力状況管理 INSERT/UPDATE

腎臓移行スクリプト(jin.py)

テーブル名 用途 処理内容
T_ISHOKU_KIHON_LIV 生体移植基本情報 INSERT/UPDATE
T_TRACER_IKO TRACER移行管理 INSERT
T_ISHOKU_KIHON_KIDNEY_LIV 生体腎臓移植詳細 INSERT/UPDATE
T_DONOR_LIV ドナー基本情報 INSERT/UPDATE
T_DONOR_KIDNEY_LIV 腎臓ドナー詳細 INSERT/UPDATE
T_NYURYOKUJOKYO_LIV 入力状況管理 INSERT/UPDATE
T_GAPPEI_R_LIV 受者合併症 INSERT
T_IJI_MENEKI_YOKUSEI_R_LIV 受者免疫抑制剤 INSERT
T_KANSEN_R_LIV 受者感染症 INSERT
T_LIVING_D_LIV ドナー生存情報 INSERT
T_KENSA_R_LIV 受者検査値 INSERT
T_KENSA_D_LIV ドナー検査値 INSERT

影響を受けるPHPアプリケーション機能

コントローラとテーブルの対応関係

LivingDonorTransplant.php(生体移植機能)

参照・更新するテーブル: - T_ISHOKU_KIHON_LIV - T_ISHOKU_KIHON_LIVER_LIV - T_ISHOKU_KIHON_KIDNEY_LIV - T_DONOR_LIV - T_DONOR_LIVER_LIV - T_DONOR_KIDNEY_LIV - T_NYURYOKUJOKYO_LIV - その他追跡・検査テーブル

影響を受けるURL:

URL 機能 メソッド 影響度
/livingDonorTransplant/ トップページ index()
/livingDonorTransplant/search 検索画面 search()
/livingDonorTransplant/postSearch 検索実行 postSearch()
/livingDonorTransplant/detail 詳細表示 detail()
/livingDonorTransplant/entry 新規登録画面 entry()
/livingDonorTransplant/confEntry 登録確認画面 confEntry()
/livingDonorTransplant/recipient 受者情報入力 recipient()
/livingDonorTransplant/confRecipient 受者情報確認 confRecipient()
/livingDonorTransplant/donor ドナー情報入力 donor()
/livingDonorTransplant/confDonor ドナー情報確認 confDonor()
/livingDonorTransplant/csv CSVエクスポート csv()
/livingDonorTransplant/statusInfoTransplant 入力状況参照 statusInfoTransplant()

ReportTransplant.php(レポート機能)

参照するテーブル: - T_ISHOKU_KIHON_LIV - T_ISHOKU_KIHON_LIVER_LIV - T_ISHOKU_KIHON_KIDNEY_LIV - T_DONOR_LIV(参照のみ)

影響を受けるURL:

URL 機能 影響度
/reportTransplant/search レポート検索
/reportTransplant/detail レポート詳細
/reportTransplant/csv CSVエクスポート
/reportTransplant/pdf PDF出力

モデルとテーブルの対応関係

モデルクラス テーブル 用途
TIshokuKihonLiv T_ISHOKU_KIHON_LIV 生体移植基本情報CRUD
TIshokuKihonLiverLiv T_ISHOKU_KIHON_LIVER_LIV 肝臓移植詳細CRUD
TIshokuKihonKidneyLiv T_ISHOKU_KIHON_KIDNEY_LIV 腎臓移植詳細CRUD
TDonorLiv T_DONOR_LIV ドナー基本情報CRUD
TNyuryokujokyoLiv T_NYURYOKUJOKYO_LIV 入力状況CRUD

メンテナンスページ表示が必要なURL

高優先度(必須停止)

データの整合性に直接影響するため、**必ず停止が必要**なURL:

/livingDonorTransplant/*

具体的なURL: - /livingDonorTransplant/ - トップ - /livingDonorTransplant/search - 検索 - /livingDonorTransplant/postSearch - 検索実行 - /livingDonorTransplant/detail - 詳細 - /livingDonorTransplant/entry - 新規登録 - /livingDonorTransplant/confEntry - 登録確認 - /livingDonorTransplant/recipient - 受者入力 - /livingDonorTransplant/confRecipient - 受者確認 - /livingDonorTransplant/donor - ドナー入力 - /livingDonorTransplant/confDonor - ドナー確認

中優先度(推奨停止)

データ参照のみだが、移行中のデータが表示される可能性があるため、**停止を推奨**するURL:

/livingDonorTransplant/csv
/livingDonorTransplant/statusInfoTransplant
/reportTransplant/*

影響なし(停止不要)

生体移植データを参照しないため、通常稼働可能:

/cadavericTransplant/*      # 死体移植機能
/auth/*                     # 認証機能
/headquarter/*              # 本部機能
/cordinator/*               # コーディネータ機能

メンテナンスモードの実装

既存のメンテナンス機能

application/helpers/maintenance_helper.phpに実装済みのguardTracerLiving()関数を使用します。

実装箇所: - application/controllers/common/LivingDonorTransplant.php - application/controllers/common/ReportTransplant.php

メンテナンスフラグファイル

フラグファイルパス:

application/maintenance_tracer_living.flag

フラグファイル形式:

2025-10-12 01:00-03:00 JST
肝臓・腎臓の生体移植データを移行中です。

  • 1行目: メンテナンス予定時刻
  • 2行目以降: メッセージ(ログイン画面にバナー表示)

メンテナンスページの表示内容

表示先: - 影響を受けるURL全てで表示 - ログイン画面にもバナー表示

表示内容:

システムメンテナンス中

現在、生体移植データの移行作業を実施しています。

メンテナンス時間:
2025-10-12 01:00-03:00 JST

大変ご不便をおかけしますが、メンテナンス終了後に再度アクセスしてください。

※死体移植機能は通常通りご利用いただけます。

データ移行フロー図

sequenceDiagram
    participant Admin as 管理者
    participant Flag as メンテナンスフラグ
    participant Web as Webアプリ
    participant KAN as kan.py
    participant JIN as jin.py
    participant DB as Database

    Admin->>Flag: maintenance_tracer_living.flag作成
    Admin->>Web: メンテナンス確認
    Web-->>Admin: メンテナンスページ表示

    Note over Admin,DB: 生体移植機能停止中

    Admin->>KAN: python kan.py 実行
    KAN->>DB: 肝臓データINSERT/UPDATE
    Note over DB: T_ISHOKU_KIHON_LIVER_LIV<br/>T_DONOR_LIVER_LIV等

    Admin->>JIN: python jin.py 実行
    JIN->>DB: 腎臓データINSERT/UPDATE
    Note over DB: T_ISHOKU_KIHON_KIDNEY_LIV<br/>T_DONOR_KIDNEY_LIV等

    Admin->>DB: データ整合性確認
    DB-->>Admin: OK

    Admin->>Flag: maintenance_tracer_living.flag削除
    Admin->>Web: 動作確認
    Web-->>Admin: 正常表示

    Note over Admin,DB: 生体移植機能再開

移行時の注意事項

データ整合性

  1. 外部キー制約: 移行順序を遵守
  2. 基本テーブル → 詳細テーブル → 関連テーブル
  3. T_ISHOKU_KIHON_LIVT_ISHOKU_KIHON_LIVER_LIV / T_ISHOKU_KIHON_KIDNEY_LIV

  4. 一意性制約:

  5. SEITAI_ISYOKU_IDの重複チェック
  6. TRACER_IDの一意性担保

  7. NOT NULL制約:

  8. 必須フィールドのデータ存在確認
  9. デフォルト値の設定

ロールバック手順

移行失敗時のロールバック手順:

# バックアップからリストア
mysql -u root -p TRACERDB7 < backup_before_migration.sql

# メンテナンスフラグ削除
rm application/maintenance_tracer_living.flag

# 動作確認
# ブラウザで /livingDonorTransplant/search にアクセス

移行後の確認項目

  • 検索機能の動作確認
  • 詳細表示の確認
  • 入力状況の確認
  • CSVエクスポートの確認
  • レポート出力の確認
  • ドナー・受者データの整合性確認

関連ドキュメント