{"id":"4cc2ba93-b468-4ca2-b165-20250d581a65","shortId":"vDKEuw","kind":"skill","title":"scaffolding-oracle-to-postgres-migration-test-project","tagline":"Scaffolds an xUnit integration test project for validating Oracle-to-PostgreSQL database migration behavior in .NET solutions. Creates the test project, transaction-rollback base class, and seed data manager. Use when setting up test infrastructure before writing migration integr","description":"# Scaffolding an Integration Test Project for Oracle-to-PostgreSQL Migration\n\nCreates a compilable, empty xUnit test project with transaction management and seed data infrastructure for a single target project. Run once per project before writing tests.\n\n## Workflow\n\n```\nProgress:\n- [ ] Step 1: Inspect the target project\n- [ ] Step 2: Create the xUnit test project\n- [ ] Step 3: Implement transaction-rollback base class\n- [ ] Step 4: Implement seed data manager\n- [ ] Step 5: Verify the project compiles\n```\n\n**Step 1: Inspect the target project**\n\nRead the target project's `.csproj` to determine the .NET version and existing package references. Match these versions exactly — do not upgrade.\n\n**Step 2: Create the xUnit test project**\n\n- Target the same .NET version as the application under test.\n- Add NuGet packages for Oracle database connectivity and xUnit.\n- Add a project reference to the target project only — no other application projects.\n- Add an `appsettings.json` configured for Oracle database connectivity.\n\n**Step 3: Implement transaction-rollback base class**\n\n- Create a base test class that opens a transaction before each test and rolls it back after.\n- Catch and handle all exceptions to guarantee rollback.\n- Make the pattern inheritable by all downstream test classes.\n\n**Step 4: Implement seed data manager**\n\n- Create a global seed manager for loading test data within the transaction scope.\n- Do not commit seed data — transactions roll back after each test.\n- Do not use `TRUNCATE TABLE` — preserve existing database data.\n- Reuse existing seed files if available.\n- Establish a naming convention for seed file location that downstream test creation will follow.\n\n**Step 5: Verify the project compiles**\n\nBuild the test project and confirm it compiles with zero errors before finishing.\n\n## Key Constraints\n\n- Oracle is the golden behavior source — scaffold for Oracle first.\n- Keep to existing .NET and C# versions; do not introduce newer language or runtime features.\n- Output is an empty test project with infrastructure only — no test cases.","tags":["scaffolding","oracle","postgres","migration","test","project","awesome","copilot","github","agent-skills","agents","custom-agents"],"capabilities":["skill","source-github","skill-scaffolding-oracle-to-postgres-migration-test-project","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/scaffolding-oracle-to-postgres-migration-test-project","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (2,078 chars)","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-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:25.011Z","embedding":null,"createdAt":"2026-04-18T20:30:52.859Z","updatedAt":"2026-05-18T18:52:25.011Z","lastSeenAt":"2026-05-18T18:52:25.011Z","tsv":"'1':90,123 '2':96,151 '3':103,198 '4':111,240 '5':117,299 'add':167,176,189 'applic':164,187 'appsettings.json':191 'avail':283 'back':220,265 'base':34,108,203,207 'behavior':23,323 'build':304 'c':334 'case':355 'catch':222 'class':35,109,204,209,238 'commit':260 'compil':63,121,303,311 'configur':192 'confirm':309 'connect':173,196 'constraint':318 'convent':287 'creat':27,61,97,152,205,245 'creation':295 'csproj':133 'data':38,73,114,243,253,262,277 'databas':21,172,195,276 'determin':135 'downstream':236,293 'empti':64,347 'error':314 'establish':284 'exact':146 'except':226 'exist':140,275,279,331 'featur':343 'file':281,290 'finish':316 'first':328 'follow':297 'global':247 'golden':322 'guarante':228 'handl':224 'implement':104,112,199,241 'infrastructur':45,74,351 'inherit':233 'inspect':91,124 'integr':12,49,52 'introduc':338 'keep':329 'key':317 'languag':340 'load':251 'locat':291 'make':230 'manag':39,70,115,244,249 'match':143 'migrat':6,22,48,60 'name':286 'net':25,137,160,332 'newer':339 'nuget':168 'open':211 'oracl':3,18,57,171,194,319,327 'oracle-to-postgresql':17,56 'output':344 'packag':141,169 'pattern':232 'per':82 'postgr':5 'postgresql':20,59 'preserv':274 'progress':88 'project':8,14,30,54,67,79,83,94,101,120,127,131,156,178,183,188,302,307,349 'read':128 'refer':142,179 'reus':278 'roll':218,264 'rollback':33,107,202,229 'run':80 'runtim':342 'scaffold':2,9,50,325 'scaffolding-oracle-to-postgres-migration-test-project':1 'scope':257 'seed':37,72,113,242,248,261,280,289 'set':42 'singl':77 'skill' 'skill-scaffolding-oracle-to-postgres-migration-test-project' 'solut':26 'sourc':324 'source-github' 'step':89,95,102,110,116,122,150,197,239,298 'tabl':273 'target':78,93,126,130,157,182 'test':7,13,29,44,53,66,86,100,155,166,208,216,237,252,268,294,306,348,354 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'transact':32,69,106,201,213,256,263 'transaction-rollback':31,105,200 'truncat':272 'upgrad':149 'use':40,271 'valid':16 'verifi':118,300 'version':138,145,161,335 'within':254 'workflow':87 'write':47,85 'xunit':11,65,99,154,175 'zero':313","prices":[{"id":"e5a96127-3415-4a4e-a14d-10e7726f4150","listingId":"4cc2ba93-b468-4ca2-b165-20250d581a65","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:52.859Z"}],"sources":[{"listingId":"4cc2ba93-b468-4ca2-b165-20250d581a65","source":"github","sourceId":"github/awesome-copilot/scaffolding-oracle-to-postgres-migration-test-project","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/scaffolding-oracle-to-postgres-migration-test-project","isPrimary":false,"firstSeenAt":"2026-04-18T21:51:12.900Z","lastSeenAt":"2026-05-18T18:52:25.011Z"},{"listingId":"4cc2ba93-b468-4ca2-b165-20250d581a65","source":"skills_sh","sourceId":"github/awesome-copilot/scaffolding-oracle-to-postgres-migration-test-project","sourceUrl":"https://skills.sh/github/awesome-copilot/scaffolding-oracle-to-postgres-migration-test-project","isPrimary":true,"firstSeenAt":"2026-04-18T20:30:52.859Z","lastSeenAt":"2026-05-07T22:40:31.527Z"}],"details":{"listingId":"4cc2ba93-b468-4ca2-b165-20250d581a65","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"scaffolding-oracle-to-postgres-migration-test-project","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"efcb33d6845ffcde5527c8398ff5db1314e48429","skill_md_path":"skills/scaffolding-oracle-to-postgres-migration-test-project/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/scaffolding-oracle-to-postgres-migration-test-project"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"scaffolding-oracle-to-postgres-migration-test-project","description":"Scaffolds an xUnit integration test project for validating Oracle-to-PostgreSQL database migration behavior in .NET solutions. Creates the test project, transaction-rollback base class, and seed data manager. Use when setting up test infrastructure before writing migration integration tests, or when a test project is needed for Oracle-to-PostgreSQL validation."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/scaffolding-oracle-to-postgres-migration-test-project"},"updatedAt":"2026-05-18T18:52:25.011Z"}}