-
- Téléchargements
Nouvelle procédure de mise à jour.
D'une part, apparition d'un fichier {{{maj.log}}} utilisé exlusivement pour les opérations de mises à jour et sans limitation de taille, afin de disposer facilement de cette information complète à tout moment. Ensuite, le fichier des mises à jour est à présent l'affectation d'un tableau '''maj''' (indexé par les parties entière et fractionnaire de '''spip_version'''). Chaque entrée est un tableau des opérations à faire en séquence. Chaque opération est un tableau dont le premier est une fonction ('''sql_alter''' le plus souvent, mais aussi n'importe quelle fonction PHP) et les suivants ses arguments. La boucle de mise à jour consiste à appliquer les fonctions des entrées strictement supérieures à '''version_installee''', et inférieures ou égales à '''spip_version'''). A chaque opération (pas seulement chaque numéro de mise à jour) une meta mémorise le point de sauvegarde, afin de pouvoir reprendre au bon endroit en cas de Time-out (autrement dit la fonction serie_alter est automatiquement appelée pour chaque mise à jour). Un autre avantage de cette représentation est que si la mise à jour 1.N contient une erreur, découverte alors qu'on en est à la version 1.N+P, il est facile de neutraliser le code fautif pour les bases n'en ayant pas été victimes, et d'aiguiller vers un code spécifique pour les autres. Voir par exemple comment la 1.950 rattrape une telle situation. En l'état, la mise à jour d'une base en 1.9.2 (1.926) vers la courante 1.957 produit les erreurs suivantes, dues à de mauvaises mises à jour dans la série (qui n'a pas changé en ce qui concerne la suite d'appels MySQL) pour lesquelles la facilité ci-dessus n'a pas encore été appliquée: {{{ Oct 17 19:28:25 132.227.64.22 (pid 292) Unknown column 'maj' in 'spip_urls' - ALTER TABLE `spip192`.spip_urls CHANGE maj date DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL Oct 17 19:28:25 132.227.64.22 (pid 292) Unknown column 'maj' in 'spip_urls' - ALTER TABLE `spip192`.spip_urls CHANGE `maj` date DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL Oct 17 19:28:25 132.227.64.22 (pid 292) Unknown column 'id_type' in 'spip_types_documents' - ALTER TABLE `spip192`.spip_types_documents CHANGE `id_type` `id_type` BIGINT( 21 ) NOT NULL Oct 17 19:28:25 132.227.64.22 (pid 292) Can't DROP 'id_type'; check that column/key exists - ALTER TABLE `spip192`.spip_types_documents DROP `id_type` Oct 17 19:28:25 132.227.64.22 (pid 292) Can't DROP 'extension'; check that column/key exis ts - ALTER TABLE `spip192`.spip_types_documents DROP INDEX `extension` }}}
parent
bc99d5f9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Chargement en cours
Veuillez vous inscrire ou vous se connecter pour commenter