creating-oracle-to-postgres-master-migration-plan
creating-oracle-to-postgres-master-migration-plan について
.NET ソリューションを分析し、Oracle から PostgreSQL への移行対象をプロジェクトごとに分類して、後続の処理が読み取れる計画を作成するスキルです。依存関係と移行順序の整理に役立ちます。
主な機能
- 01ソリューション内のプロジェクト検出
- 02Oracle の指標を調査
- 03移行適格性の分類
- 04分類と順序の確認
- 05構造化された計画ファイルの作成
活用シーン
- 01ソリューション内の Oracle プロジェクトの棚卸し
- 02移行・対象外・移行済みプロジェクトの分類
- 03依存プロジェクトの移行順序の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill creating-oracle-to-postgres-master-migration-planインストール後、Claude Code で/creating-oracle-to-postgres-master-migration-planを入力して読み込まれたか確認します。
詳細
Oracle から PostgreSQL へのマスター移行計画の作成
.NET ソリューションを分析し、すべてのプロジェクトについて Oracle から PostgreSQL への移行可否を分類し、後続のエージェントやスキルが解析できる構造化された計画を作成します。
ワークフロー
Progress:
- [ ] Step 1: Discover projects in the solution
- [ ] Step 2: Classify each project
- [ ] Step 3: Confirm with user
- [ ] Step 4: Write the plan file
ステップ 1:プロジェクトを検出する
ワークスペースのルートにあるソリューションファイル(拡張子が .sln または .slnx のファイル)を見つけます。複数ある場合はユーザーに確認してください。ファイルを解析して、すべての .csproj プロジェクト参照を抽出します。各プロジェクトについて、名前、パス、種類(クラスライブラリ、Web API、コンソール、テストなど)を記録します。
ステップ 2:各プロジェクトを分類する
テスト以外のすべてのプロジェクトをスキャンして、Oracle に関する情報を探します。
- NuGet 参照:
Oracle.ManagedDataAccess、Oracle.EntityFrameworkCore(.csprojとpackages.configを確認) - 設定エントリ:
appsettings.json、web.config、app.config内の Oracle 接続文字列 - コードの使用状況:
OracleConnection、OracleCommand、OracleDataReader .github/oracle-to-postgres-migration/DDL/Oracle/配下の DDL 相互参照(存在する場合)
各プロジェクトに、次のいずれかの分類を割り当てます。
| 分類 | 意味 |
|---|---|
| MIGRATE | 変換が必要な Oracle 連携があります |
| SKIP | Oracle に関する情報はありません(UI のみ、共有ユーティリティなど) |
| ALREADY_MIGRATED | -postgres または .Postgres の重複プロジェクトが存在し、処理済みと思われます |
| TEST_PROJECT | テストプロジェクトです。テストのワークフローで処理します |
ステップ 3:ユーザーに確認する
分類済みの一覧を提示します。確定する前に、ユーザーが分類や移行順序を調整できるようにします。
ステップ 4:計画ファイルを作成する
次の場所に保存します:.github/oracle-to-postgres-migration/Reports/MasterMigrationPlan.md
この正確なテンプレートを使用してください。後続のコンシューマーはこの構造に依存します。
# Master Migration Plan
**Solution:** {solution file name}
**Solution Root:** {REPOSITORY_ROOT}
**Created:** {timestamp}
**Last Updated:** {timestamp}
## DDL Artifacts
**Location:** {path to DDL artifacts, e.g., `.github/oracle-to-postgres-migration/DDL/`}
**External tool used:** {Yes / No} — {If Yes, name the tool (e.g., `ora2pg`) and note that Phase 4 (Schema & DDL Migration) can be skipped; PostgreSQL DDL artifacts already exist.}
## Solution Summary
| Metric | Count |
|--------|-------|
| Total projects in solution | {n} |
| Projects requiring migration | {n} |
| Projects already migrated | {n} |
| Projects skipped (no Oracle usage) | {n} |
| Test projects (handled separately) | {n} |
## Project Inventory
| # | Project Name | Path | Classification | Notes |
|---|---|---|---|---|
| 1 | {name} | {relative path} | MIGRATE | {notes} |
| 2 | {name} | {relative path} | SKIP | No Oracle dependencies |
## Migration Order
1. **{ProjectName}** — {rationale, e.g., "Core data access library; other projects depend on it."}
2. **{ProjectName}** — {rationale}
共有ライブラリや基盤ライブラリを、それらに依存するプロジェクトより先に移行する順序にします。