Problemas al actualizar nextcloud 17 a 18

Desde hace meses tengo en un servidor instalado nextcloud como alternativa a google drive. Como la versión instalada era la 14, me decidí a actualizarlo a la ultima versión y al actualizar de la versión 17 a la 18, siempre me mostraba el error » Base table or view not found: 1146 Table ‘nextcloud.oc_flow_operations_scope’ doesn’t exist»

En un vps tengo instalado nextcloud, es una alternativa muy interesante a Google Drive, además de incluir un montón de plugins para añadirle mas funcionalidades.

Como hacia tiempo que no lo actualizaba y en las notificaciones siempre me mostraba el aviso de que había una actualización, me decidí a hacerlo para evitar problemas de seguridad.

Actualizaciones de Nextcloud

En un principio, localice la ultima versión, la ultima estable es la 18… vaya, me despiste unas cuantas versiones. xD

Descargo la versión 18 e intento actualizar, gran error.

A Nextcloud no le gusta dar saltos de versiones, así que debemos ir actualizando versión a versión. En mi caso, un salto de la versión 14 a la 18 evidentemente no me funciono. Por lo que iba a estar entretenido, ya debería actualizar de la versión 14 a la 15, de la 15 a la 16, de la 16 a la 17 y por ultimo, de la 17 a la 18.

Para ir mas rápido, accedo mediante ssh al vps, y voy descargando las versiones mediante wget desde la pagina de historico de versiones de nextcloud.

Es un proceso un poco tedioso, pero nada complicado:

  • descarga del fichero zip con wget,
  • descompresión en su directorio /var/www
  • ejecución de la actualización.

Todo funciona sin problemas hasta llegar a la versión 17 y querer actualizar a la ultima, la versión 18.

Se presenta el problema al actualizar de nextcloud 17 a nextcloud 18

Al ejecutar la instalación desde la línea de comandos, me encuentro con el dichoso error: «Table ‘nextcloud.oc_flow_operations_scope’ doesn’t exist»

La verdad es que no entendía nada, ya que la base de datos se ha ido actualizando en cada versión desde la 14 hasta la 17, sin problema alguno.
Pero en esta ultima actualización al actualizar con el comando:

sudo -u www-data ./occ upgrade

Me devuelve el error:

PHP Warning:  Module 'OAuth' already loaded in Unknown on line 0
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Set log level to debug
Turned on maintenance mode
Updating database schema
Updated database
Updating  ...
Doctrine\DBAL\Exception\TableNotFoundException: An exception occurred while executing 'SELECT `o`.`id` FROM `oc_flow_operations` `o` LEFT JOIN `oc_flow_operations_scope` `s` ON `o`.`id` = `s`.`operation_id` WHERE `s`.`operation_id` IS NULL':

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nextcloud.oc_flow_operations_scope' doesn't exist
Update failed
Maintenance mode is kept active
Reset log level

Como podemos ver en la salida del comando, el problema es debido a que no existe la tabla «oc_flow_operations_scope» en la base de datos.

Solución al error de la tabla que no existe

Después de mucho investigar por foros, encontré la solución que era borrar el fichero database.xml del componente wordkflowengine:

cp apps/workflowengine/appinfo/database.xml ~/
rm -f apps/workflowengine/appinfo/database.xml
sudo -u www-data php /var/www/nextcloud/occ upgrade

Por si acaso, antes de borrarlo, realizamos una copia en el directorio raiz de nuestro usuario. Por ultimo, ejecutamos la actualización que podrá continuar sin problemas y completarse.

Ahora ya tengo actualizado el Nextcloud y estaré mas atento a próximas actualizaciones para no tener que pasar por muchas versiones de golpe.

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *