# 移行ツール群の関係図 — どれを使えばいいか

本プロジェクト周辺には、移行プロジェクトの**異なる工程**を扱う複数のツールが
あります。「結局どれを使えばいいか」を 1 枚で示すための関係図です。

---

## 🗺 移行プロジェクトの工程と対応ツール

```
┌────────────────────────────────────────────────────────────────┐
│  移行プロジェクトの典型的な工程                                  │
└────────────────────────────────────────────────────────────────┘

  [1] 資産棚卸し         [2] 難易度評価           [3] スキーマ・        [4] アプリ
       インベントリ          見積もり工数           データ変換             移植
                                                                    
  ┌──────────────┐   ┌────────────────┐   ┌──────────────┐   ┌────────────┐
  │ 既存資産を     │   │ 各ファイルの    │   │ DDL / DML /  │   │ 言語間の    │
  │ 機械的に      │ → │ AUTO/REVIEW/   │ → │ 業務データ    │ → │ ソース変換   │
  │ 一覧化        │   │ MANUAL 分類    │   │ を変換        │   │ たたき台     │
  └──────────────┘   └────────────────┘   └──────────────┘   └────────────┘

  対応ツール:
   - cobol2java           ← 工程 [1][2][4] を COBOL → Java で
   - Oracle2PostgreSQL    ← 工程 [1][2][3] を Oracle → PostgreSQL で
   - ABAP2S4HANA          ← 工程 [1][2] を ECC ABAP → S/4HANA で
   - VBA2LOBasic          ← 工程 [1][2][4] を VBA → LibreOffice Basic で
   - VMware2KVM           ← 工程 [1][3] を VMware → KVM / Nutanix で
   - data-migration-tool  ← 工程 [3] の「業務データ移行」専門
   - UniversalMigrator    ← 工程 [4] の「任意言語間ソース変換」
                                                                    
```

---

## 🤝 UniversalMigrator と data-migration-tool の違い

両ツールは混同されがちですが **守備範囲が異なります**：

| 項目 | UniversalMigrator | data-migration-tool |
|---|---|---|
| 主な対象 | **ソースコード**（66 言語間） | **業務データ**（CSV/TSV/JSON/XML） |
| 出力 | 変換後のソースコード | Oracle / PostgreSQL 投入 SQL / DDL |
| エンジン | Anthropic Claude API（AI） | ルールベース（外部依存なし） |
| 言語実装 | Python | Python + Java（2 言語実装提供） |
| 想定工程 | アプリ移植段階の **コード変換** | アプリ移行前後の **データ変換** |
| 典型ユーザー | 移行 PoC を企画する開発リード | 移行プロジェクトのデータ担当 |

### 併用例

> 「VB6 アプリ → C# Web アプリに移行する」プロジェクトの場合：

1. **UniversalMigrator** で VB6 → C# のソース変換たたき台を生成
2. 既存 Access MDB のデータをエクスポート → CSV
3. **data-migration-tool** で CSV → 新しい PostgreSQL スキーマへ
4. 移植後の C# アプリと新 DB を結合してテスト

→ **ソース移植とデータ移行は並行作業**で進められる

---

## 🎯 専門ツールとの使い分け

特定言語間に「専門ツール」がある場合は、汎用の UniversalMigrator より
専門ツールの方が高精度です：

| 移行元 → 先 | 推奨ツール | 理由 |
|---|---|---|
| COBOL → Java | **cobol2java** | 10 ベンダー方言・EXEC SQL/CICS/DLI 対応・難易度スコア出力 |
| Oracle → PostgreSQL | **Oracle2PostgreSQL** | 80+ 変換ルール、PL/SQL → PL/pgSQL の AST 変換 |
| ABAP → S/4HANA | **ABAP2S4HANA** | ECC → S/4HANA 固有のチェック |
| VBA → LibreOffice Basic | **VBA2LOBasic** | Office 自動化 API 差異の補正 |
| VMware → KVM/Nutanix | **VMware2KVM** | .vmx / .ovf → libvirt / acli / Prism JSON |
| **その他**・組み合わせ | **UniversalMigrator** | 専門ツールでカバーされない 66 言語対応 |

---

## 💰 商用展開時の使い分け

- **OSS で社内 PoC**：すべて無料（MIT）
- **診断レポート受託**：各専門ツール側でディレクトリ単位の診断モードあり
- **大規模移行案件のアセスメント**：複数ツールを組み合わせて統合レポート提供（個別見積もり）

連絡先：highdefinitionaudiodriver@gmail.com
