samedi, août 04, 2012

Mise à jour SPIP 2.1 vers SPIP 3.0, ça passe ou ça…

 

Toute la communauté SPIP attendait SPIP 3.0 stable et elle est déjà disponible depuis mal de temps, mais force est de constater que peu de personnes font la mise à jour même si SPIP 3.0 apporte son lot de nouveautés. Sans doute parce que SPIP 2.1.x convient déjà à la plupart des utilisations. Donc hier, comme je m’ennuyais, je décide de mettre à jour un de mes sites sous SPIP 2.1 vers SPIP 3.0 et comme d’habitude, j’ai foncé tête baissée sans prendre quelques précautions et le résultat est que je me suis retrouvé avec un site vraiment Space. La première chose que j’ignorais est que Sarka SPIP n’était pas encore compatible avec SPIP 3.0 et cela a vraiment foutu le bordel.

J’ai effectué la mise à jour vers SPIP 3.0 avec le fichier spip_loader.php et la mise à jour s’est effectuée sans problème. Mais le site était indisponible à cause de la présence de Sarka et de mon squelette personnalisé. La page d’accueil était entièrement blanche et affichait juste un message d’erreur. Donc je me dis que ce n’est pas grave, je vais me passer de Sarka SPIP et je vais passer à Zpip. Au début, cela a marché, j’installe le plugin et quelques thèmes et le design s’affiche correctement. Ensuite, je décide de mettre des publicités Adsense en modifiant le fichier articles.html dans le dossier squelettes et là boum, le design part en vrille et j’ignore absolument pourquoi. Théoriquement, SPIP cherche d’abord le template dans le dossier squelettes, et ensuite dans squelettes-dist. Et si vous voulez utiliser la surcharge, vous copiez le fichier en question dans le dossier squelettes et SPIP va l’utiliser en priorité tandis que les autres restent dans squelettes-dist. Mais non, le design a été totalement perturbé.

Et si je duplique le dossier squelettes-dist en squelettes, alors Zpip et Zen Garden cesse de fonctionner, car c’est le template par défaut qui est utilisé. Logique, mais je ne comprend pas pourquoi SPIP refuse de reconnaitre ZPIP. En termes clairs, si j’utilise uniquement squelettes-dist, les thèmes Zpip s’affichent correctement, mais dès que j’utilise le dossier squelettes alors ça fout le bordel. J’ignore les fichiers à copier pour préserver le design, mais je ne me suis pas découragé pour autant. Après, le template par défaut de SPIP 3.0 est suffisant pour afficher le contenu de manière claire et épuré et c’est ce qui compte pour le visiteur. Notez que tous ces problèmes concernent uniquement le design, car la mise à jour de la base, du contenu, et même des plugins s’est déroulé sans problème (sauf pour certains qui étaient en doublons (dans plugins et auto en même temps)).

Le cauchemar de la synchronisation locale de SPIP 3.0

Je me dis que j’en ai marre et que je fais faire une synchronisation locale pour voir ça de plus près. Donc, je sauvegarde la base de donnée de mon nouveau site sous SPIP 3.0. J’installe un nouveau SPIP 3.0 en local pour restaurer la base. Une procédure classique, me direz-vous, mais voici les messages d’erreurs que j’ai reçu pendant la restauration de la base (sachant que j’utilise exactement la même version sur le serveur distant et local, à savoir, SPIP 3.0.4 [19781]) :

Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database

Warning: sqlite_last_error() expects parameter 1 to be resource, string given

Et franchement, j’ignore absolument ce qui s’est passé. Est-ce que mon serveur local a des problèmes pour supporter SQLite ? J’étais là avec un air vraiment dubitatif quand je décide une autre solution. Je vais voir sur mon serveur distant dans le répertoire dump pour voir si j’ai toujours mon ancienne sauvegarde de SPIP 2.1 et elle était toujours là. Oui, j’avais sauvegardé la base avant d’effectuer la mise à jour sur le serveur distant, mais je craignais qu’elle soit écrasée par la mise à jour de SPIP 3.0. Donc, je télécharge cette ancienne base. J’installe un nouveau SPIP 2.1 et je restaure la base et cela fonctionne nickel. Ensuite, j’effectue la mise à jour manuelle de SPIP 2.1 vers SPIP 3.0 (en copiant manuellement les fichiers de SPIP 3.0 vers le site sous SPIP 2.1). Et là, la base est correctement mise à jour, mais cela ne signifie pas que c’est une synchronisation locale, mais au moins, j’ai deux sites similaires sur lesquels je peux travailler.

De là, je télécharge le dossier plugins du serveur distant (ceux en local n’étaient pas compatibles avec SPIP 3.0) et cela a aussi fonctionné. Mais je rencontre le même problème avec la surcharge en utilisant le dossier squelettes et Zpip. Donc, les dégâts ont étés limités, mais je ne suis satisfait qu’à 70 % (soyons généreux) de la mise à jour depuis SPIP 2.1 vers SPIP 3.0.

J’ai aussi copié le dossier squelettes de mon serveur distant pour avoir une similarité complète avec le site en local. Donc, pour ceux qui veulent mettre à jour leurs SPIP 2.1 vers SPIP 3.0, je leur conseille vraiment de prendre le temps, car le principal risque est de perdre toutes ses personnalisations. Il y aura aussi des plugins incompatibles et ce fichu problème de surcharge avec le dossier squelettes.

 

Mots clés Technorati :