mirror of
https://github.com/strapi/strapi.git
synced 2025-08-12 02:38:21 +00:00
158 lines
4.0 KiB
Markdown
158 lines
4.0 KiB
Markdown
# Migration guide from alpha.12.2 to alpha.12.3
|
|
|
|
**Here are the major changes:**
|
|
|
|
- Framework tests suite
|
|
- Filters in the Content Manager plugin
|
|
- One way relation in the Content-Type Builder
|
|
- GraphQL update: timestamp fields update and some bug fixes
|
|
- Fix delete manyToMany relations with Mongoose
|
|
|
|
**Useful links:**
|
|
|
|
- Changelog: [https://github.com/strapi/strapi/releases/tag/v3.0.0-alpha.12.3](https://github.com/strapi/strapi/releases/tag/v3.0.0-alpha.12.3)
|
|
- GitHub diff: [https://github.com/strapi/strapi/compare/v3.0.0-alpha.12.2...v3.0.0-alpha.12.3](https://github.com/strapi/strapi/compare/v3.0.0-alpha.12.2...v3.0.0-alpha.12.3)
|
|
|
|
<br>
|
|
|
|
::: tip
|
|
Feel free to [join us on Slack](http://slack.strapi.io) and ask questions about the migration process.
|
|
:::
|
|
|
|
<br>
|
|
|
|
## Getting started
|
|
|
|
Install Strapi `alpha.12.3` globally on your computer. To do so run `npm install strapi@3.0.0-alpha.12.3 -g`.
|
|
|
|
When it's done, generate a new empty project `strapi new myNewProject` (don't pay attention to the database configuration).
|
|
|
|
<br>
|
|
|
|
## Update node modules
|
|
|
|
Update the Strapi's dependencies version (move Strapi's dependencies to `3.0.0-alpha.12.3` version) of your project.
|
|
|
|
Run `npm install strapi@3.0.0-alpha.12.3 --save` to update your strapi version and then run the same command for `strapi-mongoose` or `strapi-bookshelf` depending on the module you use in your application.
|
|
|
|
<br>
|
|
|
|
## Update the Admin
|
|
|
|
::: tip
|
|
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.
|
|
|
|
<br>
|
|
|
|
## Update the Plugins
|
|
|
|
::: tip
|
|
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.
|
|
|
|
<br>
|
|
|
|
## ⚠️ Warning for SQL users
|
|
|
|
Please check your `decimal` data type. If in the past you received `string` instead of `number` the issue has been fixed.
|
|
|
|
Same thing for `boolean` type, if in the past you received `1` and `0` instead of `true` and `false`. We fixed it.
|
|
|
|
<br>
|
|
|
|
## ⚠️ Warning for GraphQL users
|
|
|
|
GraphQL timestamp attribute change. If you are using `mongoose` nothing will change for you.
|
|
|
|
If you are using `bookshelf` you will have to change `created_at` and `updated_at` by `createdAt` and `updatedAt`
|
|
|
|
<br>
|
|
|
|
## Add count route
|
|
|
|
You need to add a new route in your API.
|
|
|
|
Update the `./api/:name/config/route.json` file to add the new route. ⚠️ put it BEFORE the findOne route.
|
|
|
|
```json
|
|
{
|
|
"method": "GET",
|
|
"path": "/article/count",
|
|
"handler": "Article.count",
|
|
"config": {
|
|
"policies": []
|
|
}
|
|
}
|
|
```
|
|
|
|
Then update your controller's file and add the count action.
|
|
|
|
```js
|
|
/**
|
|
* Count article records.
|
|
*
|
|
* @return {Number}
|
|
*/
|
|
|
|
count: async ctx => {
|
|
return strapi.services.article.count(ctx.query);
|
|
};
|
|
```
|
|
|
|
For Mongo applications update the service of your API with the following code:
|
|
|
|
```js
|
|
/**
|
|
* Promise to count articles.
|
|
*
|
|
* @return {Promise}
|
|
*/
|
|
|
|
count: params => {
|
|
// Convert `params` object to filters compatible with Mongo.
|
|
const filters = strapi.utils.models.convertParams('article', params);
|
|
|
|
return Article.count().where(filters.where);
|
|
};
|
|
```
|
|
|
|
And for Postgres and MySQL applications with this one:
|
|
|
|
```js
|
|
/**
|
|
* Promise to count a/an article.
|
|
*
|
|
* @return {Promise}
|
|
*/
|
|
|
|
count: params => {
|
|
// Convert `params` object to filters compatible with Bookshelf.
|
|
const filters = strapi.utils.models.convertParams('article', params);
|
|
|
|
return Article.query(function(qb) {
|
|
_.forEach(filters.where, (where, key) => {
|
|
if (_.isArray(where.value)) {
|
|
for (const value in where.value) {
|
|
qb[value ? 'where' : 'orWhere'](
|
|
key,
|
|
where.symbol,
|
|
where.value[value]
|
|
);
|
|
}
|
|
} else {
|
|
qb.where(key, where.symbol, where.value);
|
|
}
|
|
});
|
|
}).count();
|
|
};
|
|
```
|
|
|
|
That's all, you have now upgraded to Strapi `alpha.12.3`.
|