---
generated_at: 2026-01-29 21:39:00
metrics:
  claims_total: 26
  claims_with_evidence: 26
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：10-check_for_migrations.md

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：26 / 26、根拠なし：0
- 優先レビュー（高）
  1. なし：すべての主張に根拠あり

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `src/backend/InvenTree/InvenTree/tasks.py` lines 671-754
- E-02: `src/backend/InvenTree/InvenTree/tasks.py` lines 658-669 (get_migration_plan, get_migration_count関数)
- E-03: `src/backend/InvenTree/InvenTree/tasks.py` lines 269-289 (ScheduledTaskクラス定義)
- E-04: `docs/code-to-docs/バッチ一覧/バッチ一覧.csv` line 11

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | 日次でスケジュールされる | E-01: `@scheduled_task(ScheduledTask.DAILY)` line 672 | ○ |
| C-02 | マイグレーションが必要か確認する | E-01: lines 673-754, E-04: バッチ一覧説明 | ○ |
| C-03 | auto_update有効時は自動実行 | E-01: line 714 `if not force and not get_setting('INVENTREE_AUTO_UPDATE', 'auto_update'):`, E-04 | ○ |
| C-04 | forceパラメータで強制実行可能 | E-01: line 673 `def check_for_migrations(force: bool = False, reload_registry: bool = True) -> bool:` | ○ |
| C-05 | reload_registryパラメータでプラグインリロード制御 | E-01: line 673 | ○ |
| C-06 | isRunningMigrations()をチェック | E-01: line 682 `if ready.isRunningMigrations() or ready.isRunningBackup():` | ○ |
| C-07 | isRunningBackup()をチェック | E-01: line 682 | ○ |
| C-08 | マイグレーション/バックアップ実行中はFalse返却 | E-01: lines 682-684 `return False` | ○ |
| C-09 | set_pending_migrations内部関数を定義 | E-01: lines 686-695 | ○ |
| C-10 | _PENDING_MIGRATIONSにマイグレーション数を保存 | E-01: line 691 `set_global_setting('_PENDING_MIGRATIONS', n, None)` | ○ |
| C-11 | registry.check_reload()を呼び出し | E-01: lines 698-700 `if reload_registry: registry.check_reload()` | ○ |
| C-12 | get_migration_plan()でマイグレーション計画取得 | E-01: line 702, E-02: lines 658-662 | ○ |
| C-13 | マイグレーションがない場合は0を設定してTrue返却 | E-01: lines 707-709 `if not plan: set_pending_migrations(0) return True` | ○ |
| C-14 | get_settingでauto_update設定を確認 | E-01: line 714 `get_setting('INVENTREE_AUTO_UPDATE', 'auto_update')` | ○ |
| C-15 | auto_update無効時はログ出力してFalse返却 | E-01: lines 715-716 `logger.info('Auto-update is disabled - skipping migrations') return False` | ○ |
| C-16 | 各マイグレーションをログ出力 | E-01: lines 719-720 `for migration in plan: logger.info('- %s', migration[0])` | ○ |
| C-17 | set_maintenance_mode(True)でメンテナンスモード有効化 | E-01: line 723 | ○ |
| C-18 | maintenance_mode_on()コンテキストマネージャを使用 | E-01: line 726 `with maintenance_mode_on():` | ○ |
| C-19 | call_command('migrate', interactive=False)を実行 | E-01: line 730 | ○ |
| C-20 | NotSupportedErrorをキャッチ（SQLite用） | E-01: lines 731-734 `except NotSupportedError as e:` | ○ |
| C-21 | 成功時は_PENDING_MIGRATIONS=0を設定 | E-01: line 738 `set_pending_migrations(0)` | ○ |
| C-22 | get_maintenance_mode()で状態確認 | E-01: line 743 `if get_maintenance_mode():` | ○ |
| C-23 | メンテナンスモード解除されない場合は手動解除 | E-01: lines 743-746 | ○ |
| C-24 | registry.reload_plugins()で完全リロード | E-01: line 751 `registry.reload_plugins(full_reload=True, force_reload=True, collect=True)` | ○ |
| C-25 | OpenTelemetryトレーシング対応 | E-01: line 671 `@tracer.start_as_current_span('check_for_migrations')` | ○ |
| C-26 | コアシステムカテゴリに属する | E-04: カテゴリ列「コアシステム」 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし

## 5) リスクフラグ（レビュー観点）
- 1: 中リスク - マイグレーション実行はデータベーススキーマに影響を与えるため、実行前のバックアップ確認が重要

## 6) レビュアーチェックリスト（最小）
- [ ] INVENTREE_AUTO_UPDATE設定が意図通りか確認
- [ ] マイグレーション実行前にバックアップが取得されているか確認
- [ ] メンテナンスモード中のユーザーへの影響を確認
- [ ] SQLite環境でのNotSupportedError発生時の挙動を確認
- [ ] プラグインレジストリリロード後の動作確認
