diff --git a/docs/3.x.x/migration-guide/README.md b/docs/3.x.x/migration-guide/README.md
index ad0721b78b..eaec61375a 100644
--- a/docs/3.x.x/migration-guide/README.md
+++ b/docs/3.x.x/migration-guide/README.md
@@ -31,3 +31,4 @@
- [Migration guide from alpha.22 to alpha.23](migration-guide-alpha.22-to-alpha.23.md)
- [Migration guide from alpha.23 to alpha.24](migration-guide-alpha.23-to-alpha.24.md)
- [Migration guide from alpha.24 to alpha.25](migration-guide-alpha.24-to-alpha.25.md)
+- [Migration guide from alpha.25 to alpha.26](migration-guide-alpha.25-to-alpha.26.md)
diff --git a/docs/3.x.x/migration-guide/migration-guide-alpha.24-to-alpha.25.md b/docs/3.x.x/migration-guide/migration-guide-alpha.24-to-alpha.25.md
index 43d96caab9..19b6883065 100644
--- a/docs/3.x.x/migration-guide/migration-guide-alpha.24-to-alpha.25.md
+++ b/docs/3.x.x/migration-guide/migration-guide-alpha.24-to-alpha.25.md
@@ -55,13 +55,13 @@ Then, delete your old `plugins` folder and replace it with the new one.
## Update Mongoose
-Update all your API services by following this update https://github.com/strapi/strapi/pull/2812/files#diff-c36b911d1bc2922e1d7cf93ae692e054R132
+Update all your API services by following this update [https://github.com/strapi/strapi/pull/2812/files#diff-c36b911d1bc2922e1d7cf93ae692e054R132](https://github.com/strapi/strapi/pull/2812/files#diff-c36b911d1bc2922e1d7cf93ae692e054R132)
## Update Bookshelf
-Update all your API services by following this update https://github.com/strapi/strapi/pull/2970/files#diff-61ba361ed6161efcd5f4e583001cc9c9R240 and https://github.com/strapi/strapi/pull/2864/files#diff-61ba361ed6161efcd5f4e583001cc9c9R124
+Update all your API services by following this update [https://github.com/strapi/strapi/pull/2970/files#diff-61ba361ed6161efcd5f4e583001cc9c9R240](https://github.com/strapi/strapi/pull/2970/files#diff-61ba361ed6161efcd5f4e583001cc9c9R240) and [https://github.com/strapi/strapi/pull/2864/files#diff-61ba361ed6161efcd5f4e583001cc9c9R124](https://github.com/strapi/strapi/pull/2864/files#diff-61ba361ed6161efcd5f4e583001cc9c9R124)
-We update the name of the life cycle for the before/after fetch all https://github.com/strapi/strapi/pull/2965/files
+We update the name of the life cycle for the before/after fetch all [https://github.com/strapi/strapi/pull/2965/files](https://github.com/strapi/strapi/pull/2965/files)
You will have to replace `beforeFetchCollection` by `beforeFetchAll` if you added theses functions in you `Model.js` files.
diff --git a/docs/3.x.x/migration-guide/migration-guide-alpha.25-to-alpha.26.md b/docs/3.x.x/migration-guide/migration-guide-alpha.25-to-alpha.26.md
new file mode 100644
index 0000000000..92bb417f1a
--- /dev/null
+++ b/docs/3.x.x/migration-guide/migration-guide-alpha.25-to-alpha.26.md
@@ -0,0 +1,159 @@
+# Migration guide from alpha.25 to alpha.26
+
+**Here are the major changes:**
+
+- Deep filtering
+- Content type builder refactoring
+
+**Useful links:**
+- Changelog: [https://github.com/strapi/strapi/releases/tag/v3.0.0-alpha.26](https://github.com/strapi/strapi/releases/tag/v3.0.0-alpha.26)
+- GitHub diff: [https://github.com/strapi/strapi/compare/v3.0.0-alpha.25...v3.0.0-alpha.26](https://github.com/strapi/strapi/compare/v3.0.0-alpha.25...v3.0.0-alpha.26)
+
+
+
+::: note
+Feel free to [join us on Slack](http://slack.strapi.io) and ask questions about the migration process.
+:::
+
+
+
+## Getting started
+
+Install Strapi `alpha.26` globally on your computer. To do so run `npm install strapi@3.0.0-alpha.26 -g`.
+
+When it's done, generate a new empty project `strapi new myNewProject` (don't pay attention to the database configuration).
+
+
+
+## Update node modules
+
+Update the Strapi's dependencies version (move Strapi's dependencies to `3.0.0-alpha.26` version) of your project.
+
+Run `npm install strapi@3.0.0-alpha.26 --save` to update your strapi version.
+
+
+
+## Update the Admin
+
+::: note
+If you performed updates in the Admin, you will have to manually migrate your changes.
+:::
+
+Delete your old admin folder and replace it with the new one.
+
+
+
+## Update the Plugins
+
+::: note
+If you did a custom update on one of the plugins, you will have to manually migrate your update.
+:::
+
+Copy the fields and relations you had in your `/plugins/users-permissions/models/User.settings.json` and `/plugins/users-permissions/config/jwt.json` file in the new one.
+
+Then, delete your old `plugins` folder and replace it with the new one.
+
+
+## Add deep filtering feature
+
+By default your generated API will not have the deep filtering feature provideby this release. You will have to make some update.
+
+### Update Mongoose
+
+**Update controller**: [https://github.com/strapi/strapi/pull/2961/files#diff-008d6bf29828238415549d6caf613284](https://github.com/strapi/strapi/pull/2961/files#diff-008d6bf29828238415549d6caf613284)
+
+You will have to add `, next, { populate } = {}` in the arguments of the `find` function.
+
+Before: `find: async (ctx) => {`
+After: `find: async (ctx, next, { populate } = {}) => {`
+
+**Update service**: [https://github.com/strapi/strapi/pull/2961/files#diff-c36b911d1bc2922e1d7cf93ae692e054](https://github.com/strapi/strapi/pull/2961/files#diff-c36b911d1bc2922e1d7cf93ae692e054)
+
+You will have to add this requirement on the top of you file `const { convertRestQueryParams, buildQuery } = require('strapi-utils');`
+
+Replace the `fetchAll` function by the following code.
+
+```js
+fetchAll: (params, populate) => {
+ const filters = convertRestQueryParams(params);
+
+ const populateOpt = populate || <%= globalID %>.associations
+ .filter(ast => ast.autoPopulate !== false)
+ .map(ast => ast.alias);
+
+ return buildQuery({
+ model: <%= globalID %>,
+ filters,
+ populate: populateOpt,
+ });
+},
+```
+
+Replace the `count` function by the following code.
+
+```js
+count: (params) => {
+ const filters = convertRestQueryParams(params);
+
+ return buildQuery({
+ model: <%= globalID %>,
+ filters: { where: filters.where },
+ })
+ .count();
+```
+
+And replace `<%= globalID %>` by the Global of your API.
+
+## Update Bookshelf
+
+**Update controller**: [https://github.com/strapi/strapi/pull/2961/files#diff-a2a09f28ea5f2a78c485c232dd2dbfde](https://github.com/strapi/strapi/pull/2961/files#diff-a2a09f28ea5f2a78c485c232dd2dbfde)
+
+You will have to add `, next, { populate } = {}` in the arguments of the `find` function.
+
+Before: `find: async (ctx) => {`
+After: `find: async (ctx, next, { populate } = {}) => {`
+
+Send this new argument in the service function.
+
+Before `return strapi.services.<%= id %>.fetchAll(ctx.query);`
+After: `return strapi.services.<%= id %>.fetchAll(ctx.query, populate);`
+
+It will be the same update for the `count` function.
+
+**Update service**: [https://github.com/strapi/strapi/pull/2961/files#diff-61ba361ed6161efcd5f4e583001cc9c9](https://github.com/strapi/strapi/pull/2961/files#diff-61ba361ed6161efcd5f4e583001cc9c9)
+
+You will have to add this requirement on the top of you file `const { convertRestQueryParams, buildQuery } = require('strapi-utils');`
+
+Replace the `fetchAll` function by the following code.
+
+```js
+fetchAll: (params, populate) => {
+ // Select field to populate.
+ const withRelated = populate || <%= globalID %>.associations
+ .filter(ast => ast.autoPopulate !== false)
+ .map(ast => ast.alias);
+
+ const filters = convertRestQueryParams(params);
+
+ return <%= globalID %>.query(buildQuery({ model: <%= globalID %>, filters }))
+ .fetchAll({ withRelated })
+ .then(data => data.toJSON());
+},
+```
+
+Replace the `count` function by the following code.
+
+```js
+count: (params) => {
+ // Convert `params` object to filters compatible with Bookshelf.
+ const filters = convertRestQueryParams(params);
+
+ return <%= globalID %>.query(buildQuery({ model: <%= globalID %>, filters: _.pick(filters, 'where') })).count();
+},
+```
+
+And replace `<%= globalID %>` by the Global of your API.
+
+
+
+That's all, you have now upgraded to Strapi `alpha.26`.