Accueil
» Comment faire
»
Effacer l'avertissement concernant les index de base de données manquants de Nextcloud
Effacer l'avertissement concernant les index de base de données manquants de Nextcloud
Pour lever l'avertissement « Base de données incomplète » de Nextcloud, exécutez la commande occ db:add-missing-indicesen tant qu'utilisateur du serveur web depuis l'installation Nextcloud appropriée. Cette commande ajoute les index définis par Nextcloud ou les applications installées, mais absents de la base de données. La documentation actuelle de Nextcloud 35 --dry-runindique qu'un aperçu du code SQL est disponible avant son exécution.
L'avertissement apparaît dans la vue d'ensemble de l'administration lorsque Nextcloud détecte des index manquants dans son schéma de base de données.
Que signifie cet avertissement ?
Un index de base de données est une structure de recherche qui permet à la base de données de trouver des lignes sans parcourir l'intégralité de la table. Nextcloud et ses applications ajoutent parfois des index pour optimiser les requêtes. Lors d'une mise à niveau, cette tâche peut être confiée à un administrateur, car la création d'un index sur une table volumineuse peut prendre du temps et impacter les performances. L'avertissement d'index manquant est généralement une invite de maintenance et non la preuve que des fichiers ou des enregistrements de la base de données sont corrompus.
La documentation de référence des commandes de base de données de Nextcloud explique db:add-missing-indicescomment ajouter des index présents dans le schéma attendu mais absents de l'installation actuelle. Elle documente également --dry-runla prévisualisation des requêtes SQL. Les index concernés dépendent de votre version de Nextcloud et des applications installées.
Préparer le serveur
Vérifiez quelle instance Nextcloud affiche l'avertissement, surtout si vous gérez des environnements de test et de production ou plusieurs conteneurs.
Assurez-vous de disposer d'une sauvegarde récente de la base de données et de savoir comment la restaurer. Cette commande modifie la structure de la base de données. Ne modifiez ni ne supprimez manuellement les index.
Il est conseillé d'exécuter cette commande lorsque la charge de la base de données est raisonnable. Le serveur peut rester en ligne pendant cette opération, conformément aux recommandations de mise à niveau de Nextcloud, mais l'indexation d'une table volumineuse peut prendre du temps et affecter temporairement la vitesse de réponse.
Trouvez le répertoire d'installation de Nextcloud, la version de l'interface de ligne de commande PHP utilisée par le serveur web et le compte utilisateur du système d'exploitation de ce serveur. Ce compte est généralement présent www-datasur Debian ou Ubuntu, apachesur Fedora ou CentOS, et httpsur Arch Linux.
Le guide OCC de Nextcloud explique qu'il occs'agit de l'interface en ligne de commande du serveur et qu'elle doit être exécutée en tant qu'utilisateur HTTP afin de garantir la cohérence des droits d'accès et de propriété des fichiers. Ne l'utilisez pas www-datasans précaution si votre installation utilise un compte différent.
Prévisualiser et ajouter les index manquants
Pour installer une archive standard sur Debian ou Ubuntu, ouvrez un terminal sur le serveur Nextcloud et accédez au répertoire contenant le occfichier. Cet exemple utilise/var/www/nextcloud ; votre chemin peut être différent.
cd /var/www/nextcloud
sudo -E -u www-data php occ db:add-missing-indices --dry-run
La simulation à blanc affiche la requête SQL qui serait exécutée sans modifier la base de données. Vérifiez que le résultat correspond bien à l'opération de maintenance attendue. Cette --dry-runoption est documentée dans le manuel de Nextcloud 35 ; si une version antérieure la refuse, consultez l'aide de cette version plutôt que de supprimer des options au hasard.
Utilisez l'option de simulation documentée pour inspecter le code SQL avant d'apporter une modification à la base de données.
Lorsque vous serez prêt à appliquer la modification, exécutez la commande sans--dry-run :
Nextcloud vérifie les tables concernées et affiche la progression. Laissez le processus se terminer ; ne l'interrompez pas, même si le traitement d'une table volumineuse prend plus de temps que prévu. Le manuel de mise à niveau mentionne cette commande parmi les tâches de schéma plus longues pouvant s'exécuter pendant que l'instance est en ligne. Il n'est donc généralement pas nécessaire d'activer le mode maintenance pour cette réparation. Évitez toute maintenance de base de données simultanée pendant son exécution.
La commande vérifie les tables de la base de données et retourne à l'interpréteur de commandes une fois l'opération terminée.
Si Nextcloud s'exécute dans Docker
Exécutez cette commande occdans le conteneur d'application Nextcloud, et non dans le conteneur de base de données séparé. Pour un conteneur portant le même nom nextcloudque le compte utilisateur habituel www-data, la commande est généralement :
Remplacez nextcloudpar le nom réel de votre conteneur d'application. Si votre image ou déploiement utilise un utilisateur de conteneur, un binaire PHP ou un wrapper de commandes différent, suivez la documentation de cette image et exécutez la commande en tant qu'utilisateur HTTP.
Vérifiez que l'avertissement a disparu.
Une fois la commande terminée, actualisez les paramètres d'administration (Vue d'ensemble ). Le message d'index manquant devrait disparaître une fois que Nextcloud aura reconnu les index. Vous pouvez également relancer la commande ; elle devrait se terminer sans qu'il soit nécessaire d'ajouter à nouveau les index manquants. Cela confirme que la vérification du schéma est à jour, même si cela ne mesure pas les performances globales de la base de données.
Une fois la commande terminée, actualisez la vue d'ensemble de l'administration et vérifiez si l'avertissement relatif à la base de données a disparu.
Si l'avertissement persiste
Vérifiez que vous avez bien exécuté la commande sur la même installation Nextcloud et la même base de données que celles ayant généré l'avertissement. Une erreur fréquente consiste à l'exécuter dans un conteneur de maintenance, une instance de préproduction ou un conteneur de base de données.
Vérifiez que la commande a été exécutée avec le compte utilisateur approprié du serveur web et avec la même version de PHP que ce dernier. Nextcloud indique qu'une configuration PHP différente en ligne de commande peut entraîner occdes erreurs.
Sur Nextcloud 35 et versions ultérieures, exécutez la commande sudo -E -u www-data php occ db:schema:checkpermettant d'inspecter les différences de schéma. La documentation actuelle indique que cette vérification a été ajoutée dans la version 35. Pour les versions antérieures, utilisez les outils de diagnostic documentés pour cette version.
Si l'index manquant appartient à une application tierce ou si la commande signale une erreur, mettez à jour l'application si une mise à jour est disponible, consultez le journal Nextcloud et la sortie de la commande, puis contactez le responsable de l'application ou le support Nextcloud en leur fournissant les noms exacts de l'index et de la table. N'exécutez pas CREATE INDEXde requêtes écrites manuellement, sauf si le responsable de l'application ou de la base de données vous les fournit pour votre schéma précis.
Pour un serveur de production, conservez la sauvegarde de la base de données jusqu'à ce que l'avertissement disparaisse et que l'application fonctionne normalement. Le guide de mise à niveau de Nextcloud décrit la procédure de maintenance en ligne et la simulation facultative.