I am trying to migrate a Drupal 7 site to Drupal 9 using the Migrate module user interface. I have read through and followed the corresponding tutorials on drupal.org, but the migration still fails.

Given that my original Drupal 7 site is quite complex, for testing purposes, I created a fresh installation of Drupal 7 and created some dummy nodes; then I ran the upgrade from the user interface in Drupal 9.

The What will be upgraded? page indicated that 29 modules would be upgraded (including the Node module). After performing the upgrade, I got the following messages:

Completed 39 upgrade tasks successfully
40 upgrades failed
Upgrade process not completed

The content hasn't been migrated.

When I checked the upgrade log, I found the following error:

Migration d7_node:article did not meet the requirements. Missing migrations d7_node_type, d7_user. requirements: d7_node_type. requirements: d7_user.

The d7_node_type.yml and d7_user.yml migration files are there in the appropriate Drupal 9 folders, so I don't understand what the problem is. What am I missing?

  • Follow-up: I've run the above migration test both from Drupal 7 to 9, and from Drupal 7 to 8, on two different servers (my web hosting provider's and a XAMPP local server) with the same results. Clearly, I must be missing something. Could someone point me in the right direction to solve this problem?
    – simonp
    Feb 22, 2022 at 10:13

1 Answer 1


I had the same messages in my log when I first tried a migration using the user interface. I also had the following which once sorted out appeared to clear up the other errors.

General error: 1267 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) >and (utf8mb4_0900_ai_ci,IMPLICIT)

It seems the collations of the databases need to be the same. My source db from my drupal 7 site is utf8mb4_general_ci and the default for my new db is utf8mb4_0900_ai_ci. So I used phpmyadmin to 'convert' the drupal 7 db to utf8mb4_0900_ai_ci which did the trick.

I'm no mysql expert, as demonstrated by my use or phpmyadmin instead of the command line, so you should use a copy of your source db at the very least.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.