---
allowed-tools: Read, Write, Edit, Bash
argument-hint: [migration-type] | framework | database | cloud | architecture | --version-upgrade
description: "ชุดคำสั่งสำหรับคู่มือ Migration ช่วยวิเคราะห์ วางขั้นตอน สร้างเอกสาร หรือดำเนินงานที่เกี่ยวข้องกับงานกฎหมาย นโยบาย Compliance เอกสารสัญญา และเอกสารเทคนิคที่ต้องมีโครงสร้างชัดเจน ให้อ่านเข้าใจง่ายและนำไปใช้ต่อได้สะดวก"
---

# คู่มือ Migration

ชุดคำสั่งสำหรับคู่มือ Migration ช่วยวิเคราะห์ วางขั้นตอน สร้างเอกสาร หรือดำเนินงานที่เกี่ยวข้องกับงานกฎหมาย นโยบาย Compliance เอกสารสัญญา และเอกสารเทคนิคที่ต้องมีโครงสร้างชัดเจน ให้อ่านเข้าใจง่ายและนำไปใช้ต่อได้สะดวก

## Current System Analysis

- Current versions: @package.JSON or @requirements.txt or detect from lock files
- Migration history: !`find . -name "*migration*" -o -name "*upgrade*" | head -5`
- Database schema: !`find . -name "*schema*" -o -name "*.sql" | head -3`
- Dependencies: !`grep -c "dependency\|require\|import" package.JSON requirements.txt 2>/dev/null || echo "0"`
- Infrastructure: @docker-compose.yML or @k8s/ or @terraform/ (if exists)

## Task

Generate systematic migration guide with comprehensive safety measures: $ARGUMENTS

1. **Migration Scope Analysis**
   - Identify what is being migrated (framework, library, architecture, etc.)
   - Determine source and target versions or technologies
   - Assess the scale and complexity of the migration
   - Identify affected systems and components

2. **Impact Assessment**
   - Analyze breaking changes between versions
   - Identify deprecated features and APIs
   - Review new features and capabilities
   - Assess compatibility requirements and constraints
   - Evaluate performance and security implications

3. **Prerequisites and Requirements**
   - Document system requirements for the target version
   - List required tools and dependencies
   - Specify minimum versions and compatibility requirements
   - Identify necessary skills and team preparation
   - Outline infrastructure and environment needs

4. **Pre-Migration Preparation**
   - Create comprehensive backup strategies
   - Set up development and testing environments
   - Document current system state and configurations
   - Establish rollback procedures and contingency plans
   - Create migration timeline and milestones

5. **Step-by-Step Migration Process**
   
   **Example for Framework Upgrade:**
   ```markdown
   ## Step 1: Environment Setup
   1. Update development environment
   2. Install new framework version
   3. Update build tools and dependencies
   4. Configure IDE and tooling
   
   ## Step 2: Dependencies Update
   1. Update package.JSON/requirements.txt
   2. Resolve dependency conflicts
   3. Update related libraries
   4. Test compatibility
   
   ## Step 3: Code Migration
   1. Update import statements
   2. Replace deprecated APIs
   3. Update configuration files
   4. Modify build scripts
   ```

6. **Breaking Changes Documentation**
   - List all breaking changes with examples
   - Provide before/after code comparisons
   - Explain the rationale behind changes
   - Offer alternative approaches for removed features

   **Example Breaking Change:**
   ```markdown
   ### Removed: `oldMethod()`
   **Before:**
   ```javascript
   const result = library.oldMethod(param1, param2);
   ```
   
   **After:**
   ```javascript
   const result = library.newMethod({ 
     param1: param1, 
     param2: param2 
   });
   ```
   
   **Rationale:** Improved type safety and extensibility
   ```

7. **Configuration Changes**
   - Document configuration file updates
   - Explain new configuration options
   - Provide configuration migration scripts
   - Show environment-specific configurations

8. **Database Migration (if applicable)**
   - Create database schema migration scripts
   - Document data transformation requirements
   - Provide backup and restore procedures
   - Test migration with sample data
   - Plan for zero-downtime migrations

9. **Testing Strategy**
   - Update existing tests for new APIs
   - Create migration-specific test cases
   - Implement integration and E2E tests
   - Set up performance and load testing
   - Document test scenarios and expected outcomes

10. **Performance Considerations**
    - Document performance changes and optimizations
    - Provide benchmarking guidelines
    - Identify potential performance regressions
    - Suggest monitoring and alerting updates
    - Include memory and resource usage changes

11. **Security Updates**
    - Document security improvements and changes
    - Update authentication and authorization code
    - Review and update security configurations
    - Update dependency security scanning
    - Document new security best practices

12. **Deployment Strategy**
    - Plan phased rollout approach
    - Create deployment scripts and automation
    - Set up monitoring and health checks
    - Plan for blue-green or canary deployments
    - Document rollback procedures

13. **Common Issues and Troubleshooting**
    
    ```markdown
    ## Common Migration Issues
    
    ### Issue: Import/Module Resolution Errors
    **Symptoms:** Cannot resolve module 'old-package'
    **Solution:** 
    1. Update import statements to new package names
    2. Check package.JSON for correct dependencies
    3. Clear node_modules and reinstall
    
    ### Issue: API Method Not Found
    **Symptoms:** TypeError: oldMethod is not a function
    **Solution:** Replace with new API as documented in step 3
    ```

14. **Team Communication and Training**
    - Create team training materials
    - Schedule knowledge sharing sessions
    - Document new development workflows
    - Update coding standards and guidelines
    - Create quick reference guides

15. **Tools and Automation**
    - Provide migration scripts and utilities
    - Create code transformation tools (codemods)
    - Set up automated compatibility checks
    - Implement CI/CD pipeline updates
    - Create validation and verification tools

16. **Timeline and Milestones**
    
    ```markdown
    ## Migration Timeline
    
    ### Phase 1: Preparation (Week 1-2)
    - [ ] Environment setup
    - [ ] Team training
    - [ ] Development environment migration
    
    ### Phase 2: Development (Week 3-6)
    - [ ] Core application migration
    - [ ] Testing and validation
    - [ ] Performance optimization
    
    ### Phase 3: Deployment (Week 7-8)
    - [ ] Staging deployment
    - [ ] Production deployment
    - [ ] Monitoring and support
    ```

17. **Risk Mitigation**
    - Identify potential migration risks
    - Create contingency plans for each risk
    - Document escalation procedures
    - Plan for extended timeline scenarios
    - Prepare communication for stakeholders

18. **Post-Migration Tasks**
    - Clean up deprecated code and configurations
    - Update documentation and README files
    - Review and optimize new implementation
    - Conduct post-migration retrospective
    - Plan for future maintenance and updates

19. **Validation and Testing**
    - Create comprehensive test plans
    - Document acceptance criteria
    - Set up automated regression testing
    - Plan user acceptance testing
    - Implement monitoring and alerting

20. **Documentation Updates**
    - Update API documentation
    - Revise development guides
    - Update deployment documentation
    - Create troubleshooting guides
    - Update team onboarding materials

**Migration Types and Specific Considerations:**

**Framework Migration (React 17 → 18):**
- Update React and ReactDOM imports
- Replace deprecated lifecycle methods
- Update testing library methods
- Handle concurrent features and Suspense

**Database Migration (MySQL → PostgreSQL):**
- Convert SQL syntax differences
- Update data types and constraints
- Migrate stored procedures to functions
- Update ORM configurations

**Cloud Migration (On-premise → AWS):**
- Containerize applications
- Update CI/CD pipelines
- Configure cloud services
- Implement infrastructure as code

**Architecture Migration (Monolith → Microservices):**
- Identify service boundaries
- Implement inter-service communication
- Set up service discovery
- Plan data consistency strategies

Remember to:
- Test thoroughly in non-production environments first
- Communicate progress and issues regularly
- Document lessons learned for future migrations
- Keep the migration guide updated based on real experiences