Susana
Recientemente ha salido publicada la fecha del fin de soporte a Drupal 7: 5/01/2025. Esta vez sin más prórrogas, con lo que ahora sí o sí es el momento de pasar nuestros drupales 7 a 10. Aunque el proceso no es tan simple como quisiéramos, el cambio merece la pena.
La migración de Drupal 7 a Drupal 10 implica un proceso de varias etapas. En Digrup las catalogamos en 4: preparación, creación, migración y adaptación, aunque cada proyecto, dependiendo de la envergadura del mismo, puede dividirse en algunas más.
Verifica que tu sitio de Drupal 7 esté actualizado a la última versión disponible de Drupal 7.
Verifica que los módulos que utilizas en Drupal 7 tengan versiones compatibles con Drupal 10. Algunos módulos pueden haber sido reemplazados o ya no ser necesarios en Drupal 10. Es posible que algunos módulos utilizados en Drupal 7 no existan en Drupal 10, por ejemplo el Field_collection en ese caso estudiar las alternativas que ofrece drupal, en este caso será migrado como Paragraphs.
Puede serte útil este módulo para comprobar el estado de compatibilidad: https://www.drupal.org/project/upgrade_status
Actualiza todos los módulos y temas de tu sitio Drupal 7 a sus últimas versiones estables disponibles.
Realiza una copia de seguridad completa de tu sitio Drupal 7 existente (archivos y base de datos).
Instalar y configurar un nuevo sitio Drupal 10 siguiendo el proceso de instalación estándar. Recomendamos que sea en el mismo servidor que tengas el drupal 7 para minimizar los problemas de conexión entre drupales.
Instalar y activar los módulos de migración que proporciona el core (Migrate, Migrate drupal, Migrate drupal UI) i algunos externos como el Migrate Plus, Migrate Tools, Migrate Upgrade, que nos facilitaran el trabajo al migrar el contenido.
Configura las conexiones de base de datos en tu archivo “settings.php” para que Drupal 10 pueda acceder a la base de datos de Drupal 7.
<?php
$databases['migrate']['default'] = [
'database' => 'db_name',
'driver' => 'mysql',
'host' => 'host',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'password' => 'db_pass',
'port' => 3306,
'prefix' => '',
'username' => 'db_user',
];
?>
Ejecuta las migraciones y verifica los resultados. Para ejecutar una actualización completa de su sitio Drupal heredado al sitio Drupal actual utiliza los comandos drush facilitados por el módulo Migrate Upgrade:
$ drush migrate-upgrade --legacy-db-url=mysql://user:pass@12.34.56.78/d6db --legacy-root=http://myd7site.com
Añadiendo --configure-only solo generará los archivos de migración sin importar su contenido. Los comandos más utilizados por drush son: drush migrate:status , drush migrate:import (o --all)
También puedes hacerlo por interfaz normalmente desde '/admin/structure/migrate'.
Es posible que los archivos dentro del <default/files> no se estén migrando bien, en este caso se tendrá que modificar el yml de migración correspondiente a los files (migrate_plus.migration.upgrade_d7_file.yml) y volver a importar este componente, esto pasa si estas utilizando ddev para entornos locales.
Ejemplo de código del yml modificado:
...
langcode: ca
status: true
dependències: { }
id: upgrade_d7_file
class: Drupal\migrate\Plugin\Migration
field_plugin_method: null
cck_plugin_method: null
migration_tags:
- 'Drupal 7'
- Content
migration_group: migrate_drupal_7
label: 'Public files'
source:
plugin: d7_file
scheme: public
constants:
source_base_path: 'http://host/'
process:
fid:
-
plugin: get
source: fid
...
Una vez completada la migración, revisa y verifica el sitio migrado en Drupal 10. Asegúrate de que todos los contenidos, configuraciones y funcionalidades se hayan migrado correctamente.
Soluciona cualquier problema o error que encuentres durante la migración. Puedes consultar los registros de errores, la documentación y la comunidad de Drupal para obtener ayuda en caso de dificultades.
Actualiza cualquier módulo o tema personalizado que hayas utilizado en tu sitio de Drupal 7 para que sean compatibles con Drupal 10.
Es posible que tengas que rehacer views ya que no suelen migrar bien o directamente algunas no se migran.
El sistema de templating cambia respecto a Drupal 7, de las viejas tpl pasarás al sistema twig, con lo que te tocará rehacer theme.
Es posible que ejecutes más de una vez el paso 3, y más si vas a migrar contenido vivo, pero una primera migración exitosa te servirá para ir completando la etapa final de adaptación.
Recuerda que cada proyecto de migración Drupal puede ser único, por lo que es importante adaptar esta guñia a tus necesidades específicas para el proceso de migración y sus resultados.
Toni
Toni
Quim
Marc