{"id":"e9721182-90c9-4af8-b9a8-60420643b171","shortId":"c5j75R","kind":"skill","title":"Creating Oracle To Postgres Master Migration Plan","tagline":"Awesome Copilot skill by Github","description":"# Creating an Oracle-to-PostgreSQL Master Migration Plan\n\nAnalyze a .NET solution, classify every project for Oracle→PostgreSQL migration eligibility, and write a structured plan that downstream agents and skills can parse.\n\n## Workflow\n\n```\nProgress:\n- [ ] Step 1: Discover projects in the solution\n- [ ] Step 2: Classify each project\n- [ ] Step 3: Confirm with user\n- [ ] Step 4: Write the plan file\n```\n\n**Step 1: Discover projects**\n\nFind the Solution File (it has a `.sln` or `.slnx` extension) in the workspace root (ask the user if multiple exist). Parse it to extract all `.csproj` project references. For each project, note the name, path, and type (class library, web API, console, test, etc.).\n\n**Step 2: Classify each project**\n\nScan every non-test project for Oracle indicators:\n\n- NuGet references: `Oracle.ManagedDataAccess`, `Oracle.EntityFrameworkCore` (check `.csproj` and `packages.config`)\n- Config entries: Oracle connection strings in `appsettings.json`, `web.config`, `app.config`\n- Code usage: `OracleConnection`, `OracleCommand`, `OracleDataReader`\n- DDL cross-references under `.github/oracle-to-postgres-migration/DDL/Oracle/` (if present)\n\nAssign one classification per project:\n\n| Classification | Meaning |\n|---|---|\n| **MIGRATE** | Has Oracle interactions requiring conversion |\n| **SKIP** | No Oracle indicators (UI-only, shared utility, etc.) |\n| **ALREADY_MIGRATED** | A `-postgres` or `.Postgres` duplicate exists and appears processed |\n| **TEST_PROJECT** | Test project; handled by the testing workflow |\n\n**Step 3: Confirm with user**\n\nPresent the classified list. Let the user adjust classifications or migration ordering before finalizing.\n\n**Step 4: Write the plan file**\n\nSave to: `.github/oracle-to-postgres-migration/Reports/Master Migration Plan.md`\n\nUse this exact template — downstream consumers depend on the structure:\n\n````markdown\n# Master Migration Plan\n\n**Solution:** {solution file name}\n**Solution Root:** {REPOSITORY_ROOT}\n**Created:** {timestamp}\n**Last Updated:** {timestamp}\n\n## Solution Summary\n\n| Metric | Count |\n|--------|-------|\n| Total projects in solution | {n} |\n| Projects requiring migration | {n} |\n| Projects already migrated | {n} |\n| Projects skipped (no Oracle usage) | {n} |\n| Test projects (handled separately) | {n} |\n\n## Project Inventory\n\n| # | Project Name | Path | Classification | Notes |\n|---|---|---|---|---|\n| 1 | {name} | {relative path} | MIGRATE | {notes} |\n| 2 | {name} | {relative path} | SKIP | No Oracle dependencies |\n\n## Migration Order\n\n1. **{ProjectName}** — {rationale, e.g., \"Core data access library; other projects depend on it.\"}\n2. **{ProjectName}** — {rationale}\n````\n\nOrder projects so that shared/foundational libraries are migrated before their dependents.","tags":["creating","oracle","postgres","master","migration","plan","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T05:40:30.975Z","embedding":null,"createdAt":"2026-04-18T20:30:49.215Z","updatedAt":"2026-04-22T05:40:30.975Z","lastSeenAt":"2026-04-22T05:40:30.975Z","tsv":"'1':49,72,299,315 '2':56,121,305,328 '3':61,208 '4':66,227 'access':321 'adjust':219 'agent':41 'alreadi':187,278 'analyz':22 'api':116 'app.config':150 'appear':196 'appsettings.json':148 'ask':90 'assign':164 'awesom':8 'category-awesome-copilot' 'check':138 'class':113 'classif':166,169,220,297 'classifi':26,57,122,214 'code':151 'config':142 'confirm':62,209 'connect':145 'consol':117 'consum':242 'convers':176 'copilot':9 'core':319 'count':267 'creat':1,13,259 'cross':158 'cross-refer':157 'csproj':101,139 'data':320 'ddl':156 'depend':243,312,325,341 'discov':50,73 'downstream':40,241 'duplic':193 'e.g':318 'elig':33 'entri':143 'etc':119,186 'everi':27,126 'exact':239 'exist':95,194 'extens':85 'extract':99 'file':70,78,231,253 'final':225 'find':75 'github':12 'github/oracle-to-postgres-migration/ddl/oracle':161 'github/oracle-to-postgres-migration/reports/master':234 'handl':202,289 'indic':133,180 'interact':174 'inventori':293 'last':261 'let':216 'librari':114,322,336 'list':215 'markdown':247 'master':5,19,248 'mean':170 'metric':266 'migrat':6,20,32,171,188,222,235,249,275,279,303,313,338 'multipl':94 'n':272,276,280,286,291 'name':109,254,295,300,306 'net':24 'non':128 'non-test':127 'note':107,298,304 'nuget':134 'one':165 'oracl':2,16,30,132,144,173,179,284,311 'oracle-to-postgresql':15 'oracle.entityframeworkcore':137 'oracle.manageddataaccess':136 'oraclecommand':154 'oracleconnect':153 'oracledataread':155 'order':223,314,331 'packages.config':141 'pars':45,96 'path':110,296,302,308 'per':167 'plan':7,21,38,69,230,250 'plan.md':236 'postgr':4,190,192 'postgresql':18,31 'present':163,212 'process':197 'progress':47 'project':28,51,59,74,102,106,124,130,168,199,201,269,273,277,281,288,292,294,324,332 'projectnam':316,329 'rational':317,330 'refer':103,135,159 'relat':301,307 'repositori':257 'requir':175,274 'root':89,256,258 'save':232 'scan':125 'separ':290 'share':184 'shared/foundational':335 'skill':10,43 'skip':177,282,309 'sln':82 'slnx':84 'solut':25,54,77,251,252,255,264,271 'source-github' 'step':48,55,60,65,71,120,207,226 'string':146 'structur':37,246 'summari':265 'templat':240 'test':118,129,198,200,205,287 'timestamp':260,263 'total':268 'type':112 'ui':182 'ui-on':181 'updat':262 'usag':152,285 'use':237 'user':64,92,211,218 'util':185 'web':115 'web.config':149 'workflow':46,206 'workspac':88 'write':35,67,228","prices":[{"id":"5551c5d0-06ec-48ba-80f4-e0603ea3fb73","listingId":"e9721182-90c9-4af8-b9a8-60420643b171","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:30:49.215Z"}],"sources":[{"listingId":"e9721182-90c9-4af8-b9a8-60420643b171","source":"github","sourceId":"github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/creating-oracle-to-postgres-master-migration-plan","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:56.748Z","lastSeenAt":"2026-04-22T00:52:07.052Z"},{"listingId":"e9721182-90c9-4af8-b9a8-60420643b171","source":"skills_sh","sourceId":"github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan","sourceUrl":"https://skills.sh/github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan","isPrimary":true,"firstSeenAt":"2026-04-18T20:30:49.215Z","lastSeenAt":"2026-04-22T05:40:30.975Z"}],"details":{"listingId":"e9721182-90c9-4af8-b9a8-60420643b171","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"creating-oracle-to-postgres-master-migration-plan","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan"},"updatedAt":"2026-04-22T05:40:30.975Z"}}