Résoudre l'avertissement « Base de données incomplète » de Nextcloud

Vous ouvrez la vue d'ensemble de l'administration de Nextcloud et constatez le message : « La base de données ne contient pas tous les index. » Cet avertissement peut apparaître après une mise à niveau, car Nextcloud peut ajouter de nouveaux index aux tables existantes au fil du temps, et ne les crée pas toujours automatiquement sur une base de données volumineuse. L'absence d'index peut ralentir certaines requêtes. La solution proposée est la commande intégrée occ db:add-missing-indices.

Avant de modifier le schéma, assurez-vous d'utiliser la commande correspondant à votre installation Nextcloud, effectuez une sauvegarde de la base de données et utilisez l'utilisateur du système d'exploitation du serveur web. Sur les versions compatibles, prévisualisez la requête SQL proposée --dry-run. Lancez ensuite la réparation et vérifiez à nouveau l'aperçu de l'administration.

Que signifie cet avertissement ?

Un index de base de données est une structure qui permet à la base de données de trouver des lignes sans parcourir l'intégralité de la table. Nextcloud et ses applications définissent des index pour les tables et les champs qu'elles utilisent. Lorsqu'une nouvelle version de Nextcloud ou d'une application introduit un index absent de l'installation existante, la page d'administration peut signaler cette incompatibilité. Il s'agit d'un avertissement relatif à la maintenance du schéma ; en soi, cela ne signifie pas que la base de données est corrompue ni que des fichiers utilisateur sont manquants.

Le manuel d'administration de Nextcloud indique que des index peuvent être ajoutés au fil du temps, notamment pour améliorer les performances, et recommande aux administrateurs d'exécuter la occ db:add-missing-indicescommande appropriée. L'ajout d'un index peut prendre du temps, surtout pour une table volumineuse, et la charge de la base de données ainsi que le comportement de verrouillage peuvent varier selon le moteur de base de données et la charge de travail. Si votre instance est sollicitée, planifiez cette modification pendant une période de faible activité.

Avant de procéder à la réparation

  • Veuillez confirmer le chemin d'installation et la version. Exécutez les commandes depuis le répertoire contenant le script d'installation souhaité occou indiquez son chemin complet.
  • Sauvegardez la base de données. Utilisez votre procédure de sauvegarde habituelle pour MariaDB/MySQL, PostgreSQL ou SQLite. Vérifiez que la sauvegarde est terminée et que vous savez comment la restaurer.
  • Trouvez l'utilisateur HTTP.www-data Utilisez le compte qui exécute le serveur web de Nextcloud. Sur Debian, Ubuntu, apacheFedora, CentOS, httpArch et wwwrunopenSUSE, par exemple . Votre configuration peut être différente.
  • Vérifiez les options de commande. Le manuel d'administration stable de Nextcloud 35 les documente --dry-run. Si votre version installée ne la reconnaît pas, consultez la occ db:add-missing-indices --helpdocumentation correspondante et ignorez l'aperçu plutôt que de supposer que l'option existe.

Le guide de sauvegarde officiel répertorie la base de données, la configuration, le répertoire de données et les autres composants d'installation à conserver pour une sauvegarde complète. Pour cette opération de schéma, effectuez au minimum une sauvegarde de base de données testée en suivant la procédure appropriée.

Étape 1 : Ouvrez un terminal dans l’installation de Nextcloud.

Pour une installation Linux classique, connectez-vous au serveur via SSH et accédez au répertoire Nextcloud. Sous Ubuntu, le chemin courant est `/etc/nextcloud` /var/www/nextcloud, mais utilisez le chemin spécifique à votre serveur.

cd /var/www/nextcloud
sudo -E -u www-data php occ status

Vérifiez que le résultat de l'état indique bien l'instance installée attendue. Si vous utilisez une version de PHP différente de celle par défaut du shell pour le serveur web php, utilisez la même version compatible occ. L'exécution occen tant qu'utilisateur HTTP permet de préserver les droits d'accès et de propriété des fichiers.

Étape 2 : Prévisualiser les modifications de l’index

Si votre version installée le permet, effectuez d'abord un test à blanc :

sudo -E -u www-data php occ db:add-missing-indices --dry-run

La simulation permet de prévisualiser les instructions SQL sans les exécuter. Lisez le résultat et vérifiez qu'il concerne bien les index manquants que vous souhaitez réparer. Si le résultat identifie une table ou un index que vous ne reconnaissez pas, notez son nom exact et vérifiez si l'application correspondante est installée et à jour. Ne copiez pas directement le code SQL prévisualisé dans la console de la base de données.

Étape 3 : Ajouter les index manquants

Lorsque l'aperçu est attendu et que la sauvegarde est prête, exécutez la commande de réparation documentée :

sudo -E -u www-data php occ db:add-missing-indices

Cette commande vérifie les tables de la base de données et crée les index définis dans le schéma mais absents de l'installation actuelle. Laissez-la terminer. Sur une base de données volumineuse, cette opération peut prendre un certain temps. Évitez de l'interrompre pendant la modification du schéma. La documentation de Nextcloud indique que cette commande peut être exécutée sans interrompre l'instance ; le mode maintenance n'est pas mentionné comme prérequis pour cette réparation. Si une fenêtre de maintenance est nécessaire, suivez votre propre procédure de gestion des changements.

Docker et autres types d'installation

Dans un déploiement conteneurisé, exécutez les commandes occdans le conteneur de l'application Nextcloud, et non dans celui de la base de données. Les noms des conteneurs et des services varient ; vérifiez donc votre déploiement et remplacez-les par les noms corrects. Pour un conteneur Docker nommé `<nom_du_conteneur>` nextcloud, le modèle est :

docker exec --user www-data nextcloud php occ db:add-missing-indices

Pour Docker Compose, le modèle correspondant est `<nom_du_conteneur>` docker compose exec -u www-data <nextcloud-service> php occ db:add-missing-indices. Certains déploiements préconfigurés utilisent une commande dédiée ou un utilisateur de conteneur différent ; suivez les instructions spécifiques à ce package. Ne copiez pas le nom d'un conteneur depuis la configuration d'une autre personne sans l'avoir vérifié.

Si la commande échoue ou si l'avertissement persiste

  • Accès refusé : vérifiez l’utilisateur HTTP et le chemin d’installation. N’exécutez pas la commande en tant que superutilisateur (root) pour résoudre ce problème, sauf si la documentation de votre déploiement exige explicitement un processus privilégié ; le processus PHP doit généralement s’exécuter avec les privilèges de l’utilisateur du serveur web.
  • Erreur de connexion à la base de données ou erreur PHP : vérifiez les journaux Nextcloud, l’état du service de base de données, la version PHP configurée et le résultat de la commande. Résolvez le problème de connexion ou d’exécution sous-jacent avant de relancer la commande de schéma.
  • Erreur de clé dupliquée ou d'index unique : arrêtez l'exécution et conservez le texte d'erreur complet. Ce message peut indiquer des lignes en conflit empêchant la création d'un index unique. Identifiez l'application et la table concernées, vérifiez les versions de l'application et de Nextcloud, puis contactez le responsable de l'application ou un administrateur connaissant bien cette base de données. Ne supprimez aucune ligne ni aucun index sans avoir effectué un diagnostic précis des données et sans avoir réalisé une sauvegarde.
  • Commande introuvable ou option non prise en charge : vérifiez que vous utilisez la bonne installation Nextcloud et connectez php occ list-vous php occ help db:add-missing-indicesen tant qu’utilisateur HTTP. Les versions plus anciennes peuvent ne pas proposer toutes les nouvelles options.
  • L'avertissement persiste : actualisez la vue d'ensemble de l'administration une fois la commande terminée. Consultez les noms exacts des index et des tables mentionnés dans l'avertissement. Il peut s'agir de plusieurs index manquants, d'un index nouvellement créé suite à une mise à jour de l'application, d'une opération de base de données ayant échoué ou d'une incompatibilité de schéma que cette commande n'a pas résolue.

Ne confondez pas les index manquants avec les colonnes ou clés primaires manquantes. Nextcloud documente des commandes distinctes pour ces modifications de schéma, telles que ` db:add-missing-columnsupdate` et `update` db:add-missing-primary-keys. N'effectuez une réparation différente que si l'avertissement de l'administrateur ou la documentation spécifique à votre version le requiert.

Vérifiez le résultat

  1. Attendez que db:add-missing-indicesles sorties et les rapports soient terminés, comme par exempleDone.
  2. Rechargez la vue d'ensemble de l'administration et vérifiez que l'avertissement relatif à l'index manquant a disparu.
  3. Si le problème persiste, comparez les noms exacts de sa table et de son index avec la sortie de la commande plutôt que de la relancer à l'aveuglette.
  4. Vérifiez le journal Nextcloud et l'état de la base de données pour détecter de nouvelles erreurs, puis assurez-vous que l'accès normal aux fichiers et les applications utilisant les tables concernées fonctionnent toujours.
  5. Conservez la sauvegarde jusqu'à ce que l'instance ait fonctionné normalement et que votre politique de rétention autorise sa suppression.

Pour connaître la syntaxe actuelle des commandes, consultez le guide de référence des commandes de base de données et d'index de Nextcloud . Pour connaître la configuration requise pour l'utilisateur et PHP, consultez la documentation relative à la commande `occ` et le guide de sauvegarde de Nextcloud . Ces pages stables indiquent que le manuel actuel correspond à Nextcloud Server 35 (au 6 octobre 2026) ; les chemins d'accès, les options et les instructions d'installation peuvent varier selon les versions ou les types de déploiement.

Laisser un commentaire

Résolution des problèmes de forte utilisation du processeur dans Jitsi Meet sur les navigateurs clients

Résolution des problèmes de forte utilisation du processeur dans Jitsi Meet sur les navigateurs clients

Diagnostiquez les pics d'utilisation du processeur du navigateur Jitsi Meet et réduisez la charge client en vérifiant les vignettes vidéo, les effets de la caméra, les graphismes du navigateur et les paramètres de l'hôte.

Comment surveiller les indicateurs de Jitsi Videobridge avec Prometheus et Grafana

Comment surveiller les indicateurs de Jitsi Videobridge avec Prometheus et Grafana

Suivez l'état de santé, la charge des conférences et le trafic de Jitsi Videobridge grâce à son point de terminaison Prometheus intégré, puis explorez et représentez graphiquement les données dans Grafana.

Comment configurer un nom de domaine personnalisé pour Jitsi Meet Docker

Comment configurer un nom de domaine personnalisé pour Jitsi Meet Docker

Configurez un domaine personnalisé pour Jitsi Meet Docker avec DNS, PUBLIC_URL, HTTPS, Let's Encrypt, ports de pare-feu, paramètres NAT et vérification de bout en bout.

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 errors after SSL renewal by checking the correct URL and port, proxy routing, service status, deployed certificates, and logs.

Correction de l'avertissement Nextcloud « Le cache PHP OPcache n'est pas correctement configuré ».

Correction de l'avertissement Nextcloud « Le cache PHP OPcache n'est pas correctement configuré ».

Découvrez comment diagnostiquer et corriger l'avertissement de configuration PHP OPcache de Nextcloud en vérifiant le SAPI PHP actif, les limites de dimensionnement, les commentaires et les paramètres de revalidation.

Résolution des erreurs de migration de la base de données Kopano après une mise à niveau de MySQL

Résolution des erreurs de migration de la base de données Kopano après une mise à niveau de MySQL

Résolvez les problèmes de migration de la base de données Kopano après une mise à niveau de MySQL ou MariaDB en vérifiant les sauvegardes, les versions du serveur, les modes SQL, le jeu de caractères, l'état du schéma et les journaux.

Comment configurer l'authentification LDAP et Active Directory dans Nextcloud

Comment configurer l'authentification LDAP et Active Directory dans Nextcloud

Connectez Nextcloud à LDAP ou Active Directory avec un transport sécurisé, des filtres d'utilisateurs et de groupes, des attributs de connexion et un déploiement testé.

Correction des notifications Android Element sans services Google : Guide UnifiedPush

Correction des notifications Android Element sans services Google : Guide UnifiedPush

Corriger les notifications Element Android sur les téléphones dé-Google en configurant UnifiedPush, les autorisations Android, les paramètres de la batterie et des tests de vérification fiables.

Résoudre l'avertissement « Base de données incomplète » de Nextcloud

Résoudre l'avertissement « Base de données incomplète » de Nextcloud

Pour supprimer l'avertissement relatif aux index de base de données manquants de Nextcloud, utilisez la commande officielle occ. Commencez par sauvegarder vos données, prévisualisez les modifications, puis lancez la réparation et vérifiez le résultat.

Comment configurer l'authentification unique (SSO) avec Keycloak dans Element Web

Comment configurer l'authentification unique (SSO) avec Keycloak dans Element Web

Configurez l'authentification unique Keycloak pour Element Web en connectant OIDC à Synapse, en définissant l'URL de rappel exacte, en mappant les revendications de l'utilisateur et en testant la déconnexion.