{"id":"05d0bb1c-3b53-4cf7-9c0b-f4aee1a159bf","shortId":"QprzMf","kind":"skill","title":"Reviewing Oracle To Postgres Migration","tagline":"Awesome Copilot skill by Github","description":"# Oracle-to-PostgreSQL Database Migration\n\nSurfaces migration risks and validates migration work against known Oracle/PostgreSQL behavioral differences documented in the `references/` folder.\n\n## When to use\n\n1. **Planning** — Before starting migration work on a procedure, trigger, query, or refcursor client. Identify which reference insights apply so risks are addressed up front.\n2. **Validating** — After migration work is done, confirm every applicable insight was addressed and integration tests cover the new PostgreSQL semantics.\n\n## Workflow\n\nDetermine the task type:\n\n**Planning a migration?** Follow the risk assessment workflow.\n**Validating completed work?** Follow the validation workflow.\n\n### Risk assessment workflow (planning)\n\n```\nRisk Assessment:\n- [ ] Step 1: Identify the migration scope\n- [ ] Step 2: Screen each insight for applicability\n- [ ] Step 3: Document risks and recommended actions\n```\n\n**Step 1: Identify the migration scope**\n\nList the affected database objects (procedures, triggers, queries, views) and the application code that calls them.\n\n**Step 2: Screen each insight for applicability**\n\nReview the reference index in [references/REFERENCE.md](references/REFERENCE.md). For each entry, determine whether the migration scope contains patterns affected by that insight. Read the full reference file only when the insight is potentially relevant.\n\n**Step 3: Document risks and recommended actions**\n\nFor each applicable insight, note the specific risk and the recommended fix pattern from the reference file. Flag any insight that requires a design decision (e.g., whether to preserve Oracle empty-string-as-NULL semantics or adopt PostgreSQL behavior).\n\n### Validation workflow (post-migration)\n\n```\nValidation:\n- [ ] Step 1: Map the migration artifact\n- [ ] Step 2: Cross-check applicable insights\n- [ ] Step 3: Verify integration test coverage\n- [ ] Step 4: Gate the result\n```\n\n**Step 1: Map the migration artifact**\n\nIdentify the migrated object and summarize the change set.\n\n**Step 2: Cross-check applicable insights**\n\nFor each reference in [references/REFERENCE.md](references/REFERENCE.md), confirm the behavior or test requirement is acknowledged and addressed in the migration work.\n\n**Step 3: Verify integration test coverage**\n\nConfirm tests exercise both the happy path and the failure scenarios highlighted in applicable insights (exceptions, sorting, refcursor consumption, concurrent transactions, timestamps, etc.).\n\n**Step 4: Gate the result**\n\nReturn a checklist asserting each applicable insight was addressed, migration scripts run, and integration tests pass.","tags":["reviewing","oracle","postgres","migration","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/reviewing-oracle-to-postgres-migration","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:31.152Z","embedding":null,"createdAt":"2026-04-18T20:30:51.635Z","updatedAt":"2026-04-22T05:40:31.152Z","lastSeenAt":"2026-04-22T05:40:31.152Z","tsv":"'1':37,110,130,245,269 '2':62,116,152,251,284 '3':123,192,258,311 '4':264,340 'acknowledg':303 'action':128,197 'address':59,74,305,352 'adopt':235 'affect':137,175 'appli':55 'applic':71,121,146,157,200,255,288,329,349 'artifact':249,273 'assert':347 'assess':94,104,108 'awesom':6 'behavior':27,237,298 'call':149 'category-awesome-copilot' 'chang':281 'check':254,287 'checklist':346 'client':50 'code':147 'complet':97 'concurr':335 'confirm':69,296,316 'consumpt':334 'contain':173 'copilot':7 'cover':78 'coverag':262,315 'cross':253,286 'cross-check':252,285 'databas':15,138 'decis':222 'design':221 'determin':84,168 'differ':28 'document':29,124,193 'done':68 'e.g':223 'empti':229 'empty-string-as-nul':228 'entri':167 'etc':338 'everi':70 'except':331 'exercis':318 'failur':325 'file':183,214 'fix':209 'flag':215 'folder':33 'follow':91,99 'front':61 'full':181 'gate':265,341 'github':10 'happi':321 'highlight':327 'identifi':51,111,131,274 'index':161 'insight':54,72,119,155,178,187,201,217,256,289,330,350 'integr':76,260,313,357 'known':25 'list':135 'map':246,270 'migrat':5,16,18,22,41,65,90,113,133,171,242,248,272,276,308,353 'new':80 'note':202 'null':232 'object':139,277 'oracl':2,12,227 'oracle-to-postgresql':11 'oracle/postgresql':26 'pass':359 'path':322 'pattern':174,210 'plan':38,88,106 'post':241 'post-migr':240 'postgr':4 'postgresql':14,81,236 'potenti':189 'preserv':226 'procedur':45,140 'queri':47,142 'read':179 'recommend':127,196,208 'refcursor':49,333 'refer':32,53,160,182,213,292 'references/reference.md':163,164,294,295 'relev':190 'requir':219,301 'result':267,343 'return':344 'review':1,158 'risk':19,57,93,103,107,125,194,205 'run':355 'scenario':326 'scope':114,134,172 'screen':117,153 'script':354 'semant':82,233 'set':282 'skill':8 'sort':332 'source-github' 'specif':204 'start':40 'step':109,115,122,129,151,191,244,250,257,263,268,283,310,339 'string':230 'summar':279 'surfac':17 'task':86 'test':77,261,300,314,317,358 'timestamp':337 'transact':336 'trigger':46,141 'type':87 'use':36 'valid':21,63,96,101,238,243 'verifi':259,312 'view':143 'whether':169,224 'work':23,42,66,98,309 'workflow':83,95,102,105,239","prices":[{"id":"3fd44a33-1d0a-4234-9776-1dd3f4127854","listingId":"05d0bb1c-3b53-4cf7-9c0b-f4aee1a159bf","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:51.635Z"}],"sources":[{"listingId":"05d0bb1c-3b53-4cf7-9c0b-f4aee1a159bf","source":"github","sourceId":"github/awesome-copilot/reviewing-oracle-to-postgres-migration","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/reviewing-oracle-to-postgres-migration","isPrimary":false,"firstSeenAt":"2026-04-18T21:51:05.844Z","lastSeenAt":"2026-04-22T00:52:16.853Z"},{"listingId":"05d0bb1c-3b53-4cf7-9c0b-f4aee1a159bf","source":"skills_sh","sourceId":"github/awesome-copilot/reviewing-oracle-to-postgres-migration","sourceUrl":"https://skills.sh/github/awesome-copilot/reviewing-oracle-to-postgres-migration","isPrimary":true,"firstSeenAt":"2026-04-18T20:30:51.635Z","lastSeenAt":"2026-04-22T05:40:31.152Z"}],"details":{"listingId":"05d0bb1c-3b53-4cf7-9c0b-f4aee1a159bf","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"reviewing-oracle-to-postgres-migration","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/reviewing-oracle-to-postgres-migration"},"updatedAt":"2026-04-22T05:40:31.152Z"}}