Mise à jour Strapi v4.2.0-Beta.3 vers 4.24.x

Mise à jour Strapi v4.2.0-Beta.3 vers 4.24.x

Alexandre P. dans Dev - Le 06-05-2024

Vous le savez peut-être déjà, mais le blog utilise un backend Strapi. Je me suis lancé sur ce dernier, lors des premières versions Typescript en beta 4.2. Mais cela fait 2 ans que je n'y avais pas touché. Il fallait y remédier.

Strapi 4.2.0-beta.3

update-strapi.png

Comme vous pouvez le voir sur ces screenshot, je pars de loin. J'avais adopté Strapi à l'époque lorsqu'ils ont publié leur beta de Typescript, sans cela, j'aurais passé mon chemin.

Mais je suis un peu obligé de monter de version, non seulement pour profiter des dernières features, mais aussi de la sécurité (et de "stabilité"). Je mets des crochets car j'ai réalisé que beaucoup de choses n'allait pas. Les redirections qui ne fonctionnent pas, etc...

Nous allons en parler dès maintenant 👇👇, afin que cela puisse vous aider à monter de version sur vos backend Strapi

Strapi

Déjà rappelons ce qu'est Strapi, il s'agit d'un Headless CMS, cela signifie, que c'est un backend pour gérer du contenu. Un demi Wordpress quoi, il ne vous reste plus qu'à trouver le frontend qui va bien et on est bon.

Mais pour moi, c'est parfait, je déteste Wordpress car beaucoup trop rigide et code ayant peu de sens à mon gout (des ob_get_contents, ob_get_clean, ...) du buffer dans tous les sens, ce qui fait ce que ce vous voyez en haut d'un fichier peut être rendu en bas, etc... Bref on s'y perd dans un truc pareil, je déteste.

Je préfère 1000 fois partir sur un truc beaucoup plus stable, et afin de ne pas recréer la roue, Strapi est là.

Pour le frontend, vous le savez mais je suis parti sur Next.js étant un fan de Typescript.

Pour monter de version sur Strapi

Aïe ! C'est là où ça se complique. J'ai d'abord essayé une mise à jour via Strapi lui même:

npx @strapi/upgrade minor

Mais impossible, il détectait ma version comme étant la dernière disponible. Peut-être parce que je partais d'une beta, qui sait ?

De même, j'ai essayé de faire un update package à la main dans le repo, sur une branche spécifique, mais non, rien n'y fait.

Je me suis resigné à refaire un repo de A à Z avec la dernière version stable et voir si je peux importer mes models et tout ce qui est custom par la suite.

Donc on repart sur une install complète:

yarn create strapi-app my-project --ts

Cette approche a fonctionné mais je dois vous mettre en garde, à la "recréation" de la connexion à la base de données, tous les models customs que j'avais créé dans ma précédente version de Strapi ont fait un DROP TABLE. Je me suis retrouvé avec une base à moitié vide, en tout cas sur mon contenu, ce qui est assez déroutant. Pour les données core de strapi, users, files, etc, rien n'avait bougé.

Heureusement, j'avais des backups donc, ce n'est définitivement pas un problème, mais je tenais à vous le dire pour que vous ne commettiez pas la même erreur. Faîtes un dump au cas où, avant de tenter un upgrade.

Résultat

upgrade_strapi.png

J'ai constaté que quelques pages rencontrent un soucis sur les boutons Back, les redirections ne se font plus. Pour la dernière version de la major 4. c'est un peu dommage...

De même, la mise à jour a instauré une régression car, les développeurs ont ajouté une nouvelle colonne sur la table "files", ce qui fait que vous pouvez vous retrouver avec un dossier Media totalement vide sur le backoffice de Strapi. Le temps d'un instant j'ai cru qu'il avait tout supprimé.

Mais pas de panique, il suffit de lancer une requête sur votre serveur PostgreSQL afin de régler le problème. Cependant, c'est dommage que les développeur n'aient pas pris le temps de mettre une default value sur le nouveau champs, d'autant plus si cette valeur était utile pour l'affichage dans le backoffice.

Fixer les fichiers manquants:

UPDATE files SET folder_path = '/' WHERE folder_path is NULL;

Voilà, c'est à peu près tout, la montée de version est faite, tout me semble à peu près ISO. Je crois qu'on a réussi 🙌

#strapi#update#backoffice

user picture
Alexandre P.

Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.


Nous utilisons des cookies sur ce site pour améliorer votre expérience d'utilisateur.