Playbook
0 / 8 complete0%
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
Step 03 of 8 4-8 weeks (depends on volume + complexity)· advanced

Step 3: Migrate Stored Procedures and Functions

Decide what to do with each proc — translate, rewrite in app code, downgrade to a view, or decommission. This is usually the longest phase.

What you're doing in this step

Read every stored procedure (use the legacy-code-analyzer skill). Categorize: simple data access (translate easily), business logic (rewrite in app code), aggregations (view), unused (decommission). Estimate effort. Migrate one at a time with tests.

Recommended prompts

Use one of these to do the work in your IDE

Open the template to read it in full. Click Copy prompt to grab it (with your stack values pre-filled where they apply) — then paste into Claude Code, Cursor, or wherever you build.

Primary recommendation varies (per procedure)

Stored Procedure to Service Migration

Convert business logic embedded in T-SQL stored procedures into testable, observable application services.

dotnetsql
View template
Template· Template 1 day

SQL Server to Modern Schema Translator

Translate SQL Server schemas to modernized SQL Server (Azure SQL) or Postgres, handling type differences, constraints, and stored procedure migration.

Use this when: You're translating procs to the target dialect rather than rewriting them in app code

postgressql
View template
Recommended skills

Drop these into Claude Code for this phase

Skills auto-trigger on the right kind of request. Install once; they apply to every prompt that fits.

Skill· Skill 5 min setup

Legacy Code Analyzer Skill

Claude Code skill that reads legacy .NET code (WebForms, VB.NET, classic ASP) and explains what it does — the foundation for any migration.

claude-codedotnet
Skill· Skill 5 min setup

Spec-Driven Builder Skill

Tool-neutral skill that walks developers through PRD → stories → schema → API → tests for any new feature, producing real artifacts at each step. The methodology is identical on every supported tool.

claude-codecopilotcursor
Skill· Skill 5 min setup

Test Generator Skill

Claude Code skill that picks the right test type (unit/integration/E2E) based on context and applies Evoke's testing patterns automatically.

claude-code
Skill· Skill 5 min setup

Database Migration Skill

Claude Code skill that generates safe forward and reverse migrations with transaction-wrapping, idempotency, and zero-downtime patterns.

claude-code
Recommended MCP configs

Wire these tools into Claude Code first

MCP servers give Claude Code direct access to external systems (Jira, browsers, databases). Configure once.

MCP config· MCP config 10 min setup

Postgres MCP for Evoke

Pre-configured Postgres MCP server for Claude Code — schema inspection and read-only queries to make database work safer and faster.

claude-codemcppostgres
MCP config· MCP config 5 min setup

Filesystem MCP for Evoke

Pre-configured filesystem MCP server for Claude Code — safe, scoped read/write access to project files.

claude-codemcp
MCP config· MCP config 10 min setup

GitHub MCP for Evoke

Pre-configured GitHub MCP server for Claude Code — issues, PRs, code search, and Actions from chat.

claude-codemcp
When you're done

Verify these in your own work before moving on

This is a checklist for you to mentally tick off in your repo and IDE — the site doesn't track it, you do.

  • Every proc has a decision: translate / rewrite / view / decommission
  • Translated procs work in the target dialect with tests
  • Rewritten logic has unit tests
  • Original procs marked deprecated with logging (not yet dropped)
  • App code updated to call new locations
Common pitfalls

What goes wrong at this step

  • Translating procs that should be rewritten — putting business logic back in DB is just moving the problem
  • Skipping the decommission step — orphaned procs accumulate; track callers
  • Rewriting without tests — proc behavior is not always documented; tests prevent regressions
  • Forgetting cursors — they often hide what should be set-based queries
  • Forgetting transaction boundaries — implicit in procs, must be explicit in app code
← Previous step

Command Palette

Search for a command to run...