Irina Zaks is a Drupal instructor at Stanford University and the co-founder of Fibonacci Web Studio, a company focused on developing advanced web solutions for research and academia. This is the first post of a two-part series on choosing to move to Drupal 8/9, and creative ways to make the migration feasible.
“We have to migrate our website again!? Already?” — Most content owners
Inevitably, as soon as a new Drupal version is announced, we start receiving emails and phone calls and getting stopped in the hallway or at the coffee shop. Everyone wants to know: Do we have to migrate again? So soon?
Drupal migrations seem to inspire most content owners to regale their web team with their worst migration stories. It all feels like just yesterday—the time they had to migrate all their content by hand, the time they lost all their PDFs, the time the previous developer broke their favorite feature. Does it always have to be this hard?
Read more: How to Check out Drupal 9 on Pantheon!
Until D8, migration between major versions did not have a "one-click" option—site builders used the Feeds module with lots of processors, while developers used the Migrate module that is best for more complex migrations. For many years it was one of the main arguments for making decisions about which platform to use: Wordpress or Drupal? “Wordpress updates are easy!” was the resounding answer. Open-source evangelists want the same for Drupal.
Starting with D8 (thanks to the Migrate module in core) we have a “one-click” upgrade, which seems like an amazing advance for site builders! However, this upgrade is still very limited in 2020 and is a one-time migration that you cannot rollback and use for ongoing migrations. Other unresolved issues are the migration of field collections, text format conversion, and date conversion. As a result of these limitations, migration from D7 to D8 is still prohibitively expensive for most of my customers and pushes them either to move to WordPress or to remain on D7.
Those who want to move to Drupal 8/9 have to find creative solutions to make it feasible.
The Learning Curve: My First Drupal 8 Migration Experience
I started working on my first large site migration from D7 to D8 in the summer of 2016. We started with the new "one-click" upgrade and soon hit the wall with limitations. At that time, the Feeds module did not have any options for CSV/XML/JSON imports and any tampers, so our small group learned the Migrate module. It was a very steep learning curve, making the migration more challenging than we had anticipated from our experience migrating sites with Feeds. Luckily, our team has a growth mindset, and this experience inspired us to work towards a better migration solution!
Identifying Challenges and Opportunities
During this process, I had the realization that XML/JSON parsers and all process plugins (tampers) are already in D8 core, while in Feeds8 they still needed to be built by someone.
In addition to lack of good UI, Migrate does not allow changing the source of import via UI, and that is a huge problem for regular content updates from other websites for news/events/profiles, because every time we want to add news integration from another department we need to ask a developer to code a migration, hard-code source URL, and then push this code to production—this takes developer time to code a migration, coordination with content editors, and update of the production site. In D7, this can be completed by the content editor by adding another Feeds importer with a new URL, which takes literally three minutes including login time and finding the correct URL.
Good content migration and import tools with webUI would make Drupal 8 a viable and powerful platform for many clients and smaller shops. How do we get there? Stay tuned for part two.
You might also like:
- Improving Team Communication to Drive Digital Marketing Efforts
- Drupal 9 and the Future of Continuous Innovation
- Accessibility Primer: So, You Want to Improve Your Site’s Accessibility