[spip-dev] Mise à jour de la base

Bonjour,

  Je vous écris à peu près serein vu que j'ai eu la très bonne idée de dupliquer ma base et mes fichiers avant de faire la màj. Les dernières fois j'étais super stressé pendant les 2h où mon site en production était planté.
  Alors voilà: j'ai un site en 1.9.3 10821, http://www.math.univ-montp2.fr qui fonctionne mais diverge lentement je ne sais pas pourquoi (j'ai perdu par exemple le lien "voir en ligne" sur tous mes objets ce qui pose problème à mes rédacteurs pas trop expérimentés).
  J'ai donc résolu de passer à la dernière svn, mais la mise à jour de la base ne se passe pas bien: dès la deuxième étape
ecrire/?exec=upgrade&reinstall=non
qui me dit

Action : mise à niveau de votre base SQL
Vous venez de mettre à jour les fichiers SPIP. Il faut maintenant mettre à niveau la base de données du site.

quand j'appuie sur "Valider", je me retrouve avec ecrire/Array qui bien entendu me donne un 404:

Not Found

The requested URL /SPIP/chantier/ecrire/Array was not found on this server.

Si je fais comme si de rien n'était, le site boitille avec des problèmes, par exemple:

Erreur(s) dans le squelette

1 <BOUCLE_documents_joints>()
Erreur SQL
0+documents.titre AS num, documents.date, documents.id_document, L2.mime_type, documents.titre, L2.titre AS type_document, documents.taille, documents.descriptif FROM spip_documents AS `documents` INNER JOIN spip_types_documents AS L2 ON ( L2.id_type = documents.id_type ) INNER JOIN spip_documents_rubriques AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.taille > 0 OR documents.distant='oui') AND (L1.id_rubrique = 99) AND (documents.mode = 'document') ORDER BY num, documents.date
Unknown column 'documents.id_type' in 'on clause'
</BOUCLE_documents_joints>

Alors ma question: visiblement ma base n'a pas la bonne structure. Peut-être la base précédente était déjà endommagée, elle a peut-être raté une étape de màj. Y-aurait-il un moyen de la réparer, peut-on reprendre pas à pas les màj mysql?

Merci, Cordialement, Ch.M.

Tu es tombé sur un mauvais commit, mets a jour ton spip, cela ira mieux
Cédric

Tu es tombé sur un mauvais commit, mets a jour ton spip, cela ira mieux

Alors c'est la dernière version qui n'est pas bonne, je viens de faire un svn up et je suis à la révision 11502...

Christian

Bon, je suis moins serein: j’ai essayé de mettre à jour un autre site avec des résultats similaires, cette fois ci sans filets:

Avec les squelettes dist de la dernière svn:

<BOUCLE_documents_joints>()
Erreur SQL
0+documents.titre AS num, documents.date, documents.id_document, L2.mime_type, documents.titre, L2.titre AS type_document, documents.taille, documents.descriptif FROM spip_documents AS documents INNER JOIN spip_types_documents AS L2 ON ( L2.id_type = documents.id_type ) INNER JOIN spip_documents_rubriques AS L1 ON ( L1.id_document = documents.id_document ) WHERE (documents.taille > 0 OR documents.distant=‘oui’) AND (L1.id_rubrique = 7) AND (documents.mode = ‘document’) ORDER BY num, documents.date
Unknown column ‘documents.id_type’ in ‘on clause’
</BOUCLE_documents_joints>

Par exemple: http://www.irem.univ-montp2.fr/Qu-est-ce-qu-un-Irem (enfin quand on le calcule pour la première fois bien-sûr)

Cela signifie que la base n’a pas été mise à jour correctement. Celui-ci pourtant était un site assez vanillia.

Donc, je réitère: comment dois-je faire pour que ma base soit dans le bon état, y-a-t’il un moyen de réparer une base qui a loupé un coche de mise à jour?

Merci, cordialement, Ch.M.

Non, ta base est bonne, mais le champ id_type a ete supprimé de la table des types de documents
Donc certaines anciennes boucles ne fonctionne plus.

Cédric

tu dois avoir un fichier update.log ou maj.log dans tmp .
Que contient-il ?

Non, ta base est bonne, mais le champ id_type a ete supprimé de la table des types de documents
Donc certaines anciennes boucles ne fonctionne plus.

Alors le squelette de la dist inc-documents.html utilise d’anciennes boucles:

Avec les squelettes dist de la dernière svn:

tu dois avoir un fichier update.log ou maj.log dans tmp .

Ah, ok, bon à savoir:

more tmp/maj.log
Apr 24 17:44:31 82.224.139.4 (pid 15613) 1955/0: sql_alter TABLE spip_urls CHANGE maj date
DATETIME DEFAULT ‹ 0000-00-00 00:00:00 › NOT NULL
Apr 24 17:44:31 82.224.139.4 (pid 15613) 1955/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 1955 en 0 secondes
Apr 24 17:44:31 82.224.139.4 (pid 15613) 1957/0: sql_alter TABLE spip_mots CHANGE id_groupe
id_groupe bigint(21) DEFAULT 0 NOT NULL
Apr 24 17:44:31 82.224.139.4 (pid 15613) 1957/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) 1957/1: sql_alter TABLE spip_documents CHANGE mode
mode ENUM(‹ vignette ›, ‹ image ›, ‹ document ›) DEFAULT ‹ document › NOT NULL
Apr 24 17:44:31 82.224.139.4 (pid 15613) 1957/1: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 1957 en 0 secondes
Apr 24 17:44:31 82.224.139.4 (pid 15613) 1958/0: sql_alter TABLE spip_referers_articles DROP
date
Apr 24 17:44:31 82.224.139.4 (pid 15613) 1958/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 1958 en 0 secondes
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11042/0: upgrade_types_documents
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11042/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 11042 en 0 secondes
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11171/0: spip_query UPDATE spip_types_documents SET
upload=‹ oui › WHERE upload IS NULL OR upload!=‹ non ›
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11171/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 11171 en 0 secondes
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11268/0: maj_11268
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11268/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 11268 en 0 secondes
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11276/0: maj_11276
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11276/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 11276 en 0 secondes
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11388/0: maj_11388
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11388/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 11388 en 0 secondes
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11431/0: maj_11431
Apr 24 17:44:31 82.224.139.4 (pid 15613) 11431/0: ok
Apr 24 17:44:31 82.224.139.4 (pid 15613) MAJ vers 11431 en 0 secondes