Correction du message "La structure des tables de la base de données n'est pas à jour" avant la mise à jour.
From Joomla! Documentation
Erreurs signalées
Lors de la mise à jour de Joomla !, la structure des tables de la base de données doit être mise à jour avant que le processus puisse commencer.
La Vérification avant mise à jour pour Joomla se manifeste si ce n'est pas le cas.
Mais lorsque vous allez dans Administrateur → système → maintenance → base de données, il n'y a pas d'entrée disponible.
Versions affectées
Ce problème a été signalé dans toutes les versions de Joomla ! 4.x.
Quelle est la cause
Cela est dû à une table #__schemas vide dans la base de données. Cela se produit le plus souvent lorsque l'instance de Joomla ! n'est pas installée par le programme d'installation officiel de Joomla ! mais par un script personnalisé qui n'a pas rempli toutes les données requises.
Comment réparer
Vous pouvez résoudre ce problème en ajoutant la valeur manquante au tableau. Tout d'abord, vous avez besoin de l'ID de Joomla ! Allez dans la table #__extensions via phpMyAdmin (ou un autre client de base de données). Cherchez le nom=files_joomla et notez l'ID (dans notre cas 211).
Deuxièmement, vous devez connaître le dernier script SQL installé. Allez dans administrator/components/com_admin/sql/updates/mysql et récupérez le nom du fichier avec la version la plus élevée. Dans cet exemple, supposons que 4.0.3-2021-09-05.sql est le nom de fichier avec la version la plus élevée. Vous devez maintenant l'ajouter à votre requête d'insertion en tant que deuxième valeur :
INSERT INTO `#__schemas` (`extension_id`, `version_id`) VALUES
(211, '4.0.3-2021-09-05');
ou pour PostgreSQL :
INSERT INTO "#__schemas" ("extension_id", "version_id") VALUES
(211, '4.0.3-2021-09-05');
Remplacez #__ par le préfixe de votre base de données (voir Configuration globale) avant d'exécuter les instructions.
Ensuite, allez dans Administrateur → Système → Maintenance → Base de données et corrigez les tables.
La mise à jour devrait maintenant fonctionner comme prévu.