Files
our-claude-skills/official-skills/notion-spec-to-implementation/examples/database-migration.md
Andrew Yim 236be6c580 directory changes and restructuring
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 02:01:41 +09:00

82 lines
2.4 KiB
Markdown

# Example: Database Migration Implementation
**User Request**: "Plan and implement the database migration for user preferences schema"
## Workflow
### 1. Find & Fetch Spec
```
Notion:notion-search → Found "User Preferences Schema Migration Spec"
Notion:notion-fetch → Extracted requirements
```
**Spec Summary**: Migrate from JSON blob to structured schema for better performance and data integrity.
### 2. Parse Requirements
- **Current**: JSONB preferences column
- **Target**: Separate `user_preferences` and `notification_preferences` tables
- **Must maintain**: Backward compatibility during migration
- **Performance**: Support 1M+ users with zero downtime
### 3. Create Implementation Plan
```
Notion:notion-create-pages
pages: [{
properties: {
title: "Implementation Plan: User Preferences Migration"
},
content: "[Full implementation plan with phases]"
}]
```
**Plan included**:
- **Phase 1**: Create new tables with indexes
- **Phase 2**: Backfill data from JSONB
- **Phase 3**: Dual-write mode (both old and new)
- **Phase 4**: Switch reads to new schema
- **Phase 5**: Drop old JSONB column
### 4. Find Task Database & Create Tasks
```
Notion:notion-search → Found "Engineering Tasks" database
Notion:notion-fetch → Got schema (Task, Status, Priority, Assignee, etc.)
Notion:notion-create-pages
parent: { data_source_id: "collection://xyz" }
pages: [
{
properties: {
"Task": "Write migration SQL scripts",
"Status": "To Do",
"Priority": "High",
"Sprint": "Sprint 25"
},
content: "## Context\nPart of User Preferences Migration...\n\n## Acceptance Criteria\n- [ ] Migration script creates tables\n- [ ] Indexes defined..."
},
// ... 4 more tasks
]
```
**Tasks created**:
1. Write migration SQL scripts
2. Implement backfill job
3. Add dual-write logic to API
4. Update read queries
5. Rollback plan & monitoring
### 5. Track Progress
Regular updates to implementation plan with status, blockers, and completion notes.
## Key Outputs
**Implementation Plan Page** (linked to spec)
**5 Tasks in Database** (with dependencies, acceptance criteria)
**Progress Tracking** (updated as work progresses)
## Success Factors
- Broke down complex migration into clear phases
- Created tasks with specific acceptance criteria
- Established dependencies (Phase 1 → 2 → 3 → 4 → 5)
- Zero-downtime approach with rollback plan
- Linked all work back to original spec