logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Actualización del núcleo mediante Composer

21/06/2025, by Ivan

Esta documentación está incompleta. Agrega más información.

¿Tienes problemas para actualizar a Drupal 8.8.0 o superior?
Se realizaron cambios clave en Drupal 8.8.0 como parte de la iniciativa Composer, que mejorará significativamente los flujos de trabajo de Composer para la gestión de sitios Drupal a largo plazo. Sin embargo, hay algunas notas especiales que podrían afectar la actualización desde versiones anteriores.

Primeros pasos

Para entender cómo Composer maneja las dependencias de Drupal, consulta Usar Composer con Drupal. Para decidir si Composer es la forma adecuada para actualizar, compara las opciones disponibles.

Para comodidad, estas instrucciones incluyen comandos de Drush necesarios para completar la actualización: muchas personas encuentran que Drush es más rápido y sencillo que usar la interfaz web administrativa.

Si este es un sitio Drupal existente donde Composer nunca se usó antes, primero asegúrate de que está preparado para Composer.

Actualizar núcleo Drupal 8

Primero, asegúrate de que hay una actualización disponible para el núcleo de Drupal:

composer update --dry-run "drupal/*"

Esto mostrará cualquier actualización menor o parche disponible; usa el comodín antiguo "drupal/*" si quieres saber si hay actualizaciones para versiones principales. (Consulta Semver 2.0 para entender versiones mayores, menores y parches.) Si no ves ninguna línea que comience con drupal/core, Composer no detecta actualizaciones. Toma nota si hay una línea que comienza con drupal/core-recommended. Si hay una actualización, continúa con los comandos a continuación.

Instrucciones para actualización en un solo paso

Asumiendo que ya estás familiarizado con actualizar Drupal y conoces todas las precauciones necesarias, la actualización es tan sencilla como:

composer update drupal/core --with-dependencies
drush updatedb
drush cache:rebuild

Sustituye drupal/core por core-recommended si usas core-recommended en tu sitio. Puedes saber si usas core-recommended si está listado en tu archivo composer.json, o si aparece en la salida de composer update --dry-run cuando verificas actualizaciones disponibles.

Si instalaste tu sitio Drupal hace tiempo usando drupal-composer/drupal-project, el comando anterior podría no funcionar. Por favor, lee la lista siguiente.

Para actualizar a la versión 8.8.0 o superior

La versión más reciente de drupal-composer/drupal-project es compatible con Drupal 8.8.x. Sin embargo, si creaste tu sitio con este proyecto hace un tiempo (2019 o antes), probablemente necesites hacer algunos cambios únicos la primera vez que actualices a 8.8.0 o superior. Estos cambios se detallan en las notas especiales abajo.

Si no instalaste Drupal 8 usando Composer

Si no usaste Composer para instalar Drupal 8, debes convertir tu sitio en un proyecto gestionado con Composer para poder actualizar Drupal con los comandos anteriores. Consulta Agregar Composer a sitios existentes para una guía paso a paso para añadir Composer manualmente a sitios Drupal 8 instalados previamente sin Composer.

Instrucciones detalladas paso a paso

Todos los pasos para actualizar el núcleo Drupal 8 con Composer:

1. Siempre realiza una copia de seguridad de tus archivos y base de datos antes de actualizar.

  • drush sql:dump exportará la base de datos
  • Desafortunadamente, drush archive-dump fue eliminado de Drush 9, por lo que deberás usar herramientas estándar CLI para respaldar los directorios necesarios, usualmente excepto el directorio vendor.

2. Lee las notas de la versión. Algunos módulos o temas contribuidos pueden necesitar actualización para funcionar con la nueva versión menor (por ejemplo, de 8.3 a 8.4) del núcleo Drupal. Los lanzamientos de parche (por ejemplo, de 8.4.4 a 8.4.5) normalmente no requieren esto. Para detectar qué módulos o temas necesitan actualización, lee las notas del proyecto o del lanzamiento.

3. Activa el modo mantenimiento, usando estado de limpieza: configura system.maintenance_mode 1, y luego limpia la caché.

4. Si determinaste que algunos módulos o temas necesitan actualización, sigue las instrucciones para actualizar módulos.

5. Actualiza el núcleo Drupal y todas sus dependencias:

                - Ejecuta el siguiente comando de Composer:

composer update drupal/core --with-dependencies

                - Cambia drupal/core por drupal/core-recommended si usas el template core-recommended.
                - Si creaste tu sitio con drupal-composer/drupal-project, revisa las notas especiales abajo para pasos adicionales necesarios en la primera actualización a 8.8.0 o superior.

6. Luego aplica todas las actualizaciones necesarias a la base de datos con drush updatedb y limpia la caché con drush cache:rebuild

7. Si usas gestión de configuración para desplegar configuraciones, asegúrate de exportar la configuración con drush config:export después de actualizar la base de datos, ya que algunas actualizaciones del núcleo pueden modificar la estructura o introducir nuevos valores. Usa la opción --diff para revisar cambios reales.

8. Asegúrate de que tu sitio Drupal funciona correctamente:

  • Revisa la página de informe de estado para errores.
  • Si el módulo de registro de base de datos está activado, realiza algunas operaciones básicas y revisa los registros recientes para errores, advertencias, etc.

9. Desactiva el modo mantenimiento con drush state:set system.maintenance_mode 0 y luego limpia la caché: drush cache:rebuild.

10. Después de desactivar el modo mantenimiento, prueba el sitio también como usuario anónimo.

En tu entorno de producción

  • No necesitas repetir el proceso descrito arriba, ya que composer install instalará las versiones exactas bloqueadas en composer.lock, por lo que tendrás las mismas versiones en ambos entornos.
  • Si tienes servidores separados para desarrollo/pruebas y producción, asegúrate de copiar/fijar los archivos composer.json y composer.lock a producción y siempre ejecutar composer install --no-dev en producción, en lugar de actualizar. La opción --no-dev evita instalar paquetes listados en 'require-dev', que usualmente son módulos y librerías para pruebas.

 

Notas especiales para actualizar a Drupal 8.8.0 y superior

El socio oficial de la beta Drupal PreviousNext publicó una entrada útil en el blog sobre los pasos que siguieron para actualizar de Drupal 8.7 a la beta de Drupal 8.8.0, lo que puede ayudar a otros propietarios de sitios con problemas.

La razón principal de problemas al actualizar versiones previas de Drupal a 8.8.0 con Composer es la transición del uso del template composer proporcionado por la comunidad al nuevo template oficial drupal/recommended-project. Los siguientes pasos de solución de problemas deberían arreglar tu instalación para que puedas usar las instrucciones estándar de actualización, como las descritas arriba.

Intenta eliminar el directorio /vendor

Eliminar tu directorio vendor puede a veces resolver conflictos al ejecutar la actualización de composer. Para hacerlo:

cd tu_directorio_de_instalacion

rm -rf vendor

Luego puedes continuar con estos pasos de solución de problemas y/o ejecutar el comando de actualización de composer.

Migración de webflo/drupal-core-strict a drupal/core-recommended

Antes de 8.8.0, muchos sitios usaban el metapaquete webflo/drupal-core-strict para fijar dependencias a versiones exactas usadas/testeadas con el núcleo Drupal (principalmente paquetes Symfony). Desde la versión 8.8.0, el núcleo Drupal proporciona el paquete drupal/core-recommended para esta función. Sin embargo, el cambio no ocurre automáticamente al actualizar al núcleo 8.8.0, y webflo/drupal-core-strict no funciona con 8.8.0.

La forma más sencilla de hacer esta migración y evitar conflictos es eliminar completamente el archivo composer.lock como parte de la actualización. Esto puede hacer que otras dependencias (por ejemplo, módulos contribuidos) también se actualicen. Estos pasos aseguran que actualices exactamente lo que deseas:

  1. composer update # Actualiza cualquier dependencia como paso separado.
  2. git add composer.lock; git commit # Guarda la actualización como un commit separado.
  3. composer remove webflo/drupal-core-strict --no-update
  4. composer remove drupal/core --no-update
  5. composer require 'composer/installers:^1.7' --no-update
  6. rm composer.lock
  7. rm -rf vendor # También ayuda a evitar conflictos.
  8. composer require drupal/core-recommended:^8.8 --update-with-dependencies
  9. git add composer.json composer.lock; git commit -m "Actualizar Drupal a 8.8.0 y usar drupal/core-recommended en lugar de webflo/drupal-core-strict"

 

Migración de webflo/drupal-core-require-dev a drupal/core-dev

Si creaste tu sitio hace tiempo, puede usar el metapaquete webflo/drupal-core-require-dev para incluir dependencias de desarrollo de Drupal para pruebas unitarias y funcionales. Si no usas dependencias de desarrollo, simplemente puedes eliminar webflo/drupal-core-require-dev. De lo contrario, deberías empezar a usar el proyecto drupal/core-dev.

Primero, elimina el paquete de herramientas de desarrollo antiguo:

composer remove --dev webflo/drupal-core-require-dev

Si no necesitas herramientas de desarrollo, puedes detenerte aquí. Si quieres instalarlas de nuevo usando el método oficial, ejecuta:

composer require --dev drupal/core-dev

Actualizar parches

Si aplicas parches usando cweagans/composer-patches, es posible que tengas que reaplicar los parches. Después de rehacer un parche, necesitarás actualizar el parche en la sección extra/patches de tu composer.json.

Actualizar dependencias blandas conflictivas

En algunos casos puede haber una dependencia con una versión incompatible con la última versión de Drupal. La solución es usar composer require para actualizar esas versiones específicas junto con el núcleo, y luego eliminar las dependencias.

El siguiente ejemplo es tomado de un excelente post de PreviousNext:

Primero, requiere el núcleo y dependencias Drupal nuevas:

composer require --update-with-dependencies \
drupal/core:^8.8.0 \
symfony/finder:^3.4 \
symfony/filesystem:^3.4

Luego, requiere el paquete core-dev y dependencias nuevas:

composer require --dev --update-with-dependencies \
drupal/core-dev:^8.8.0 \
symfony/debug:^3.4 

Finalmente, elimina las dependencias temporales necesarias:

composer remove -n \
symfony/finder \
symfony/filesystem \
composer remove -n --dev symfony/debug

Actualizar configuración y esquema de la base de datos

Después de actualizar el código, puede que necesites actualizar la configuración y esquema de la base de datos:

drush updb
drush cr
drush config-export

Actualizar Settings.php

En Drupal 8.8.0 el directorio de sincronización se define en $settings y no en $config_directories, por lo que el archivo Settings.php debe actualizarse.

Simplemente cambia de:

$config_directories['sync'] = 'foo/bar';

a:

$settings['config_sync_directory'] = 'foo/bar';

Problemas conocidos y soluciones alternativas

Si ejecutas el comando composer update arriba y drupal/core no se actualiza, probablemente haya otra dependencia que impida la actualización de Drupal. Puedes verificar qué bloquea las dependencias con el comando composer prohibits. Por ejemplo, si intentas actualizar de 8.4.5 a 8.5.0, ejecuta composer prohibits drupal/core:8.5.0, y te mostrará las dependencias que bloquean la actualización. Actualiza esas dependencias junto con drupal/core, y debería funcionar (por ejemplo, composer update drupal/core "symfony/*" --with-dependencies).

Los problemas con la actualización de Composer a menudo están relacionados con plantillas composer obsoletas o configuraciones incorrectas en composer.json. Asegúrate de usar una plantilla de Composer, como la sugerida en la sección 3.5 de la Guía del usuario de Drupal 8 «Usar Composer para descargar y actualizar archivos». Consulta Agregar Composer a sitios existentes para una guía paso a paso para añadir Composer manualmente a sitios Drupal 8 instalados sin Composer previamente.

Desde enero de 2020, la plantilla Composer drupal-composer/drupal-project para proyectos Drupal ya no es la plantilla recomendada para Drupal 8.8 y superior. Hasta que se actualice la sección 3.5 de la Guía del usuario de Drupal 8, consulta la guía comunitaria para iniciar un sitio usando plantillas de proyectos Composer.

Otros problemas y entradas de blog relevantes para más ayuda:

En caso de errores o advertencias durante la actualización, se recomienda leerlas cuidadosamente y buscar soluciones en las colas de incidencias antes de continuar. En caso de errores fatales, siempre se recomienda detener la actualización y reiniciar el proceso desde cero utilizando la copia de seguridad mencionada anteriormente.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.