|
| 1 | +--- |
| 2 | +title: Migration SDK |
| 3 | +description: Learn how the open-source Migration SDK helps you plan and execute manual Spryker upgrades when the Spryker Code Upgrader cannot be used. |
| 4 | +template: howto-guide-template |
| 5 | +--- |
| 6 | + |
| 7 | +## Overview |
| 8 | + |
| 9 | +The **Migration SDK** is an open-source, community-developed tool that assists you in planning and executing manual upgrades of Spryker projects. |
| 10 | +It analyzes your project and generates detailed reports, upgrade instructions, compatibility checks, and effort estimations. |
| 11 | + |
| 12 | +Unlike the **Spryker Code Upgrader**, the Migration SDK does **not** modify your codebase or create merge requests. |
| 13 | +Instead, it provides the data and guidance you need to perform updates manually and safely. |
| 14 | + |
| 15 | +{% info_block warningBox "Warning" %} |
| 16 | +The Migration SDK is a community-maintained tool. It is not officially supported or guaranteed by Spryker. |
| 17 | +Use it at your own discretion. Contributions are welcome on [GitHub](https://github.com/spryker-projects/migration-program-sdk). |
| 18 | +{% endinfo_block %} |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## When to use the Migration SDK |
| 23 | + |
| 24 | +Use the Migration SDK when: |
| 25 | + |
| 26 | +- Your project was created before the 2022.04 release and cannot use the incremental upgrade model. |
| 27 | +- You do not have access or entitlement to the **Spryker Code Upgrader**. |
| 28 | +- You need to perform a one-time manual upgrade to align your project with the latest Spryker version. |
| 29 | + |
| 30 | +{% info_block infoBox "Tip" %} |
| 31 | +After completing a manual upgrade using the Migration SDK, you can usually switch to the official **Spryker Code Upgrader** for future incremental updates. |
| 32 | +{% endinfo_block %} |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +## Key capabilities |
| 37 | + |
| 38 | +The Migration SDK offers a collection of PHP console scripts that automate analysis and planning tasks for manual upgrades. |
| 39 | +The most useful capabilities include: |
| 40 | + |
| 41 | +### Package analysis |
| 42 | +Identify outdated packages and generate reports that compare your current setup with the target Spryker version. |
| 43 | +This helps you understand which packages require major, minor, or patch updates. |
| 44 | + |
| 45 | +### Update planning |
| 46 | +Generate a structured upgrade instruction in CSV format that groups packages into safe update batches. |
| 47 | +This allows developers to work in parallel and reduce the risk of dependency conflicts during updates. |
| 48 | + |
| 49 | +### Effort estimation |
| 50 | +Estimate how complex the upgrade will be by scanning your project for custom extensions, PHP, and Twig overrides. |
| 51 | +The generated report helps you plan effort and identify risky or highly customized modules. |
| 52 | + |
| 53 | +### Compatibility checks |
| 54 | +Detect potential compatibility issues, such as outdated PHP versions, missing plugins, or missing glossary keys. |
| 55 | +Use these reports to resolve incompatibilities before running updates. |
| 56 | + |
| 57 | +--- |
| 58 | + |
| 59 | +## Typical workflow |
| 60 | + |
| 61 | +1. Clone the [Migration SDK repository](https://github.com/spryker-projects/migration-program-sdk). |
| 62 | +2. Create a `config.ini` file based on the provided `config.dist.ini` template. |
| 63 | +3. Run the desired analysis or estimation scripts from the command line. |
| 64 | +4. Review the generated reports in the `outputs/` directory to plan your upgrade steps. |
| 65 | +5. Apply the upgrade changes manually based on the reports and upgrade instructions. |
| 66 | + |
| 67 | +All scripts and configuration options are documented in detail in the [GitHub README](https://github.com/spryker-projects/migration-program-sdk). |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +## Example use cases |
| 72 | + |
| 73 | +- **Project analysis:** Run the package analyzer to identify outdated modules before planning a major version upgrade. |
| 74 | +- **Upgrade planning:** Use the update instruction generator to divide your update process into manageable groups. |
| 75 | +- **Effort estimation:** Use the estimator report to predict development effort and prioritize modules. |
| 76 | +- **Compatibility validation:** Check for missing plugins or glossary entries to prevent regressions. |
| 77 | + |
| 78 | +--- |
| 79 | + |
| 80 | +## Related documentation |
| 81 | + |
| 82 | +- [When and why to use manual upgrade](index.html) |
| 83 | +- [Spryker Code Upgrader](/docs/ca/devscu/spryker-code-upgrader/index.html) |
| 84 | +- [Upgradability Guidelines](/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/upgradability-guidelines.html) |
0 commit comments