Créer un plan maître de migration Oracle vers PostgreSQL
Analyser une solution .NET, classer chaque projet selon son éligibilité à la migration Oracle→PostgreSQL, et rédiger un plan structuré que les agents et skills en aval peuvent analyser.
Workflow
Progression :
- [ ] Étape 1 : Découvrir les projets de la solution
- [ ] Étape 2 : Classer chaque projet
- [ ] Étape 3 : Confirmer avec l'utilisateur
- [ ] Étape 4 : Rédiger le fichier de plan
Étape 1 : Découvrir les projets
Trouver le fichier Solution (extension .sln ou .slnx) à la racine du workspace (demander à l'utilisateur s'il en existe plusieurs). L'analyser pour extraire toutes les références de projets .csproj. Pour chaque projet, noter le nom, le chemin et le type (bibliothèque de classe, API web, console, test, etc.).
Étape 2 : Classer chaque projet
Analyser chaque projet non-test pour détecter les indicateurs Oracle :
- Références NuGet :
Oracle.ManagedDataAccess,Oracle.EntityFrameworkCore(vérifier dans.csprojetpackages.config) - Entrées de configuration : chaînes de connexion Oracle dans
appsettings.json,web.config,app.config - Utilisation dans le code :
OracleConnection,OracleCommand,OracleDataReader - Références DDL dans
.github/oracle-to-postgres-migration/DDL/Oracle/(si présent)
Assigner une classification par projet :
| Classification | Signification |
|---|---|
| MIGRATE | Contient des interactions Oracle nécessitant une conversion |
| SKIP | Aucun indicateur Oracle (interface utilisateur uniquement, utilitaire partagé, etc.) |
| ALREADY_MIGRATED | Un doublon -postgres ou .Postgres existe et semble traité |
| TEST_PROJECT | Projet de test ; géré par le workflow de test |
Étape 3 : Confirmer avec l'utilisateur
Présenter la liste classifiée. Permettre à l'utilisateur d'ajuster les classifications ou l'ordre de migration avant finalisation.
Étape 4 : Rédiger le fichier de plan
Enregistrer dans : .github/oracle-to-postgres-migration/Reports/Master Migration Plan.md
Utiliser ce modèle exact — les consommateurs en aval dépendent de sa structure :
# Plan Maître de Migration
**Solution :** {nom du fichier solution}
**Racine de la solution :** {REPOSITORY_ROOT}
**Créé :** {horodatage}
**Dernière mise à jour :** {horodatage}
## Résumé de la Solution
| Métrique | Nombre |
|----------|--------|
| Total des projets dans la solution | {n} |
| Projets nécessitant une migration | {n} |
| Projets déjà migrés | {n} |
| Projets ignorés (pas d'utilisation Oracle) | {n} |
| Projets de test (gérés séparément) | {n} |
## Inventaire des Projets
| # | Nom du Projet | Chemin | Classification | Notes |
|---|---|---|---|---|
| 1 | {nom} | {chemin relatif} | MIGRATE | {notes} |
| 2 | {nom} | {chemin relatif} | SKIP | Pas de dépendances Oracle |
## Ordre de Migration
1. **{NomDuProjet}** — {raison, ex. "Bibliothèque d'accès aux données de base ; les autres projets en dépendent."}
2. **{NomDuProjet}** — {raison}
Ordonner les projets de manière que les bibliothèques partagées/fondamentales soient migrées avant leurs dépendants.