Installation et activation des modules Drush requis
On va installer les 2 modules suivants : migrate_upgrade, migrate_tools.
composer require drupal/migrate_upgrade composer require drupal/migrate_tools
Puis activer les modules :
drush pm:enable migrate_upgrade migrate_tools -y
Dans le fichier settings.php , il faut ajouter la définition de la base source.
Important : elle doit s'appeler migrate.
Par exemple :
$databases['migrate']['default'] =
array ( 'database' => 'dbdrupal7',
'username' => 'user_drupal7',
'password' => 'mdp_drupal7',
'prefix' => '',
'host' => 'localhost',
'port' => '3306',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql'
);
Générer la migration Drupal 7 vers Drupal 8
Dans la version que j'ai installé, on peut utiliser migrate_upgrade pour générer les scripts de migration, qui seront lancés avec drush.
Prérequis
Attention : à cause d'une incompatibilité avec drush 10, cette fonction nécessite que l'on modifie le fichier vendor/drush/drush/includes/drush.inc
pour ajouter la définition de drush_print :
function drush_print($message = '', $indent = 0, $handle = NULL, $newline = TRUE) { $msg = str_repeat(' ', $indent) . (string)$message; if ($newline) { $msg .= "\n"; } if (($charset = 'UTF-8' ) && function_exists('iconv')) { $msg = iconv('UTF-8', $charset, $msg); } if (!$handle) { $handle = STDOUT; } fwrite($handle, $msg);
}
Sinon on a le message :
drush migrate-upgrade --legacy-db-key=migrate --configure-only [error] Error: Call to undefined function drush_get_option() in drush_print()
Lancer la commande avec le chemin vers le répertoire source "legacy", ce qui permet de migrer les fichiers également :
drush migrate-upgrade --legacy-db-key=migrate --legacy-root /var/www/drupal7/vincentl --migration-prefix=upg1_ --configure-only
On peut ensuite voir le résultat avec la commande drush migrate-status
Et on peut lancer la migration avec :
drush migrate:import upg1_d7_taxonomy_vocabulary drush migrate:import upg1_d7_taxonomy_term_categorie drush migrate:import upg1_d7_taxonomy_term_tags drush migrate-import --group=migrate_drupal_7
Note : je lance d'abord les migrations de taxonomie pour que la génération des liens de menu se passe correctement. Comme dit précédemment, le processus est assez itératif et a demandé plusieurs essais avant de trouver les bons réglages.
Après cette étape, le contenu a été migré, ainsi que les types de contenu, les menus, etc.
Il reste à faire quelques mises au point et reprise de paramétrage sur les formats de texte (insertion du bouton media par exemple), ainsi que refaire le thème, et traiter le cas des images inline.
Ajouter un commentaire