Strapi v4 to Strapi 5 breaking changes
The present page lists all the breaking changes introduced in Strapi 5. Breaking changes are grouped into topic-related categories, and for each line in the following tables line you will find:
- a short description of the breaking change,
- and 2 other columns, "Affects plugins" and "Handled by codemods", that sum up whether the breaking change also affects plugins and whether the breaking change is automatically handled by a codemod from the upgrade CLI tool.
You can click on the description of any breaking change in the following tables to jump to the corresponding page with more details.
💡 Tips
- To view a full list of available codemods, run the
npx @strapi/upgrade codemods ls
command in your terminal. - To have a deeper look at the code executed by the codemods, head over to the list of codemods in the GitHub repository.
❗️ Warning: Strapi 5 is not stable yet
It is strongly advised not to upgrade a critical or production-ready project from Strapi v4 to Strapi 5.
The content of migration resources might not be final yet. Migration resources are currently only provided to prepare you for the upgrade to Strapi 5 when it is released as a stable version.
Strapi 5 is currently only provided as a Release Candidate (RC) version and is not meant to be used in production yet.
Database
Description | Affects plugins | Handled by codemods |
---|---|---|
MySQL v5 is not supported anymore | No | No |
Database identifiers longer than 55 characters will be automatically shortened | Yes | ✅ Yes |
Only the better-sqlite3 package is supported for the SQLite client | No | ✅ Yes |
Only the mysql2 package is supported for the MySQL client | No | ✅ Yes |
Dependencies
Description | Affects plugins | Handled by codemods |
---|---|---|
The CLI default package manager is not yarn anymore | No | No |
Vite is the default bundler in Strapi 5 | Yes | No |
Strapi 5 uses react-router-dom v6 | Yes | ✅ Yes |
Strapi 5 uses koa-body v6 | Yes | No |
Webpack aliases are removed in Strapi 5 | Yes | No |
Apollo Server v3 upgraded to Apollo Server v4 | Yes | No |
Configuration
Strapi objects, methods, packages, and back-end customization
Description | Affects plugins | Handled by codemods |
---|---|---|
strapi.fetch uses the native fetch() API | Yes | No |
strapi factories import have changed | Yes | 👷 Partly |
The isSupportedImage method is removed in Strapi 5 | Yes | No |
strapi-utils has been refactored | Yes | ✅ Yes |
Core service methods use the Document Service API | Yes | No |
i18n is now part of the strapi core | Yes | ✅ Yes |