Al abrir la vista general de administración de Nextcloud, aparece el mensaje: «A la base de datos le faltan algunos índices». Esta advertencia puede aparecer después de una actualización, ya que Nextcloud puede agregar nuevos índices a las tablas existentes con el tiempo, y no siempre los crea automáticamente en bases de datos grandes. La falta de índices puede ralentizar algunas consultas a la base de datos. La solución recomendada es el comando integrado occ db:add-missing-indices.
Antes de modificar el esquema, confirme que está ejecutando el comando para la instalación correcta de Nextcloud, realice una copia de seguridad de la base de datos y utilice el usuario del sistema operativo del servidor web. En las versiones que lo admiten, previsualice el SQL propuesto con --dry-run. A continuación, ejecute la reparación y vuelva a consultar la Vista general de administración.
Qué significa la advertencia
Un índice de base de datos es una estructura que ayuda a la base de datos a encontrar filas sin escanear toda la tabla. Nextcloud y sus aplicaciones definen índices para las tablas y los campos que utilizan. Cuando una nueva versión de Nextcloud o de una aplicación introduce un índice que una instalación existente aún no tiene, la página de administración puede informar de la discrepancia. Se trata de una advertencia de mantenimiento del esquema; por sí sola, no significa que la base de datos esté dañada ni que falten archivos de usuario.
El manual de administración de Nextcloud indica que se pueden agregar índices con el tiempo, incluso para mejorar el rendimiento, y recomienda a los administradores ejecutar el comando correspondiente occ db:add-missing-indices. Agregar un índice puede llevar tiempo, especialmente en tablas grandes, y la carga de la base de datos o el comportamiento de bloqueo pueden variar según el motor de base de datos y la carga de trabajo. Si su instancia está ocupada, planifique el cambio durante un período de menor actividad.
Antes de ejecutar la reparación
- Confirme la ruta de instalación y la versión. Ejecute los comandos desde el directorio que contiene el script de instalación previsto
occo proporcione su ruta completa. - Realice una copia de seguridad de la base de datos. Utilice su procedimiento habitual de copia de seguridad para MariaDB/MySQL, PostgreSQL o SQLite. Verifique que la copia de seguridad se haya completado y que sepa cómo restaurarla.
- Localiza el usuario HTTP. Utiliza la cuenta que ejecuta el servidor web de Nextcloud. Algunos ejemplos comunes son
www-dataDebian o Ubuntu, apacheFedora o CentOS, httpArch y wwwrunopenSUSE. Tu implementación puede variar. - Compruebe las opciones de comando. Consulte el manual de administración estable de Nextcloud 35.
--dry-runSi su versión instalada no lo reconoce, consulte occ db:add-missing-indices --helpla salida de esa versión y omita la vista previa en lugar de asumir que la opción existe.
La guía oficial de copias de seguridad enumera la base de datos, la configuración, el directorio de datos y otros componentes de instalación que deben conservarse para una copia de seguridad completa. Para esta operación de esquema, como mínimo, realice una copia de seguridad de la base de datos probada utilizando el procedimiento adecuado para su base de datos.
Paso 1: Abra una consola en la instalación de Nextcloud.
Para una instalación tradicional de Linux, conéctese al servidor mediante SSH y cambie al directorio de Nextcloud. Una ruta común en Ubuntu es /var/www/nextcloud, pero utilice la ruta en su servidor.
cd /var/www/nextcloud
sudo -E -u www-data php occ status
Confirme que la salida de estado identifique la instancia instalada esperada. Si utiliza un binario de PHP diferente para el servidor web que el predeterminado del shell php, utilice la misma versión compatible de PHP para occ. Ejecutar occcomo usuario HTTP ayuda a preservar la propiedad y los permisos de archivo esperados.
Paso 2: Previsualice los cambios en el índice.
Si su versión instalada lo permite, ejecute primero la prueba en seco:
sudo -E -u www-data php occ db:add-missing-indices --dry-run
La simulación muestra una vista previa de las sentencias SQL sin aplicarlas. Lea el resultado y confirme que se refiere a los índices faltantes que desea reparar. Si el resultado identifica una tabla o un índice que no reconoce, anote su nombre exacto y verifique si la aplicación correspondiente está instalada y actualizada. No pegue el código SQL previsualizado en la consola de la base de datos como acceso directo.
Paso 3: Añadir los índices que faltan
Cuando se espera la vista previa y la copia de seguridad está lista, ejecute el comando de reparación documentado:
sudo -E -u www-data php occ db:add-missing-indices
El comando verifica las tablas de la base de datos y crea los índices definidos en el esquema, pero que faltan en la instalación actual. Deje que finalice. En una base de datos grande, esto puede tardar un tiempo. Evite interrumpirlo mientras modifica el esquema. La documentación de Nextcloud indica que este comando se puede ejecutar con la instancia en línea; el modo de mantenimiento no se menciona como requisito previo para esta reparación específica. Siga su propio proceso de control de cambios si requiere una ventana de mantenimiento.
Docker y otros tipos de instalación
En una implementación en contenedores, ejecute occdentro del contenedor de la aplicación Nextcloud, no en el contenedor de la base de datos. Los nombres de los contenedores y servicios varían, así que revise su implementación y sustituya el nombre correcto. Para un contenedor Docker llamado nextcloud, el patrón es:
docker exec --user www-data nextcloud php occ db:add-missing-indices
Para Docker Compose, el patrón correspondiente es docker compose exec -u www-data <nextcloud-service> php occ db:add-missing-indices. Algunos despliegues empaquetados utilizan un comando específico o un usuario de contenedor diferente; siga las instrucciones de ese paquete en concreto. No copie el nombre de un contenedor de la configuración de otra persona sin verificarlo.
Si el comando falla o la advertencia persiste
- Permiso denegado: Verifique el usuario HTTP y la ruta de instalación. No intente solucionar esto ejecutando el comando como root a menos que la documentación de su implementación requiera específicamente un envoltorio con privilegios; el proceso PHP generalmente debe ejecutarse como el usuario del servidor web.
- Error de conexión a la base de datos o de PHP: revise el registro de Nextcloud, el estado del servicio de base de datos, la versión de PHP configurada y la salida del comando. Resuelva el problema subyacente de conexión o de tiempo de ejecución antes de volver a ejecutar el comando de esquema.
- Error de clave duplicada o índice único: Deténgase y guarde el texto completo del error. Puede indicar filas conflictivas que impiden la creación de un índice único. Identifique la aplicación y la tabla afectadas, confirme las versiones de la aplicación y de Nextcloud, y consulte con el responsable del mantenimiento de la aplicación o con un administrador familiarizado con esa base de datos. No elimine filas ni índices sin un diagnóstico y una copia de seguridad específicos de los datos.
- “Comando no encontrado” u opción no compatible: Confirme que se encuentra en la instalación correcta de Nextcloud y verifique
php occ listcomo php occ help db:add-missing-indicesusuario HTTP. Es posible que las versiones anteriores no muestren todas las opciones más recientes. - La advertencia persiste: Actualice la vista general de administración después de que el comando finalice correctamente. Lea los nombres exactos de los índices y las tablas que aparecen en la advertencia. Es posible que falte más de un índice, que se haya introducido un índice nuevo tras una actualización de la aplicación, que haya fallado una operación de base de datos o que exista una discrepancia en el esquema que este comando no haya resuelto.
No confunda la falta de índices con la falta de columnas o claves primarias. Nextcloud documenta comandos específicos para estos cambios de esquema, como db:add-missing-columnsy db:add-missing-primary-keys. Ejecute una reparación diferente solo cuando la advertencia del administrador o la documentación específica de la versión lo indiquen.
Verificar el resultado
- Espere hasta que
db:add-missing-indicesfinalicen las salidas y los informes, como por ejemplo:Done. - Vuelva a cargar la vista general de administración y confirme que la advertencia específica sobre el índice faltante ha desaparecido.
- Si persiste, compare los nombres exactos de las tablas y los índices con la salida del comando en lugar de volver a ejecutarlo a ciegas.
- Comprueba el registro de Nextcloud y el estado de la base de datos para detectar nuevos errores y, a continuación, confirma que el acceso normal a los archivos y las aplicaciones que utilizan las tablas afectadas siguen funcionando.
- Conserve la copia de seguridad hasta que la instancia haya funcionado con normalidad y su política de retención permita su eliminación.
Para conocer la sintaxis actual de los comandos, consulte la referencia de comandos de base de datos e índice de Nextcloud . Para conocer los requisitos de usuario y PHP, consulte Uso del comando occ y la guía de copia de seguridad de Nextcloud . Estas páginas estables identifican el manual actual como Nextcloud Server 35, según la fecha de consulta del 6 de octubre de 2026; las rutas, las opciones y las instrucciones de empaquetado pueden variar en otras versiones o tipos de implementación.