Over the past year I have tried numerous times to upgrade my personal blog to Drupal 8, after it has been running for the last 9 years on Drupal 5, 6 and 7. Now the migration tasks are finally stable enough that migration is possible, after helpful people found the remaining issue for my case, which was file and picture assignment to nodes.
And you should absolutey update if you can. The system is not only so much cleaner it also solves long-standing issues in file and image handling, internationalization and much more, it’s a pleasure to use, even with several contrib modules still missing.
If you want to try a migration, a good starting point is this Drupal.org page. This assumes that you already have a Drupal 8 site running and I highly recommend using the Composer template referenced in the excellent Lullabot article on the topic to do so, you can easily manager your core and contrib modules there already.
Here are my tips for you:
- Don’t use the GUI for migrations, calling it via drush is faster and easier. You are likely to rerun your migration many times, until everything fits with migrate-upgrade, migrate-rollback, migrate-status and migrate-reset-status.
- Note that if drush is telling you a migration is still running for something because an error was thrown, you still have to stop it. Rollback will not be enough, you need to reset the task as well.
- Before you start migrating, create a clean database dump, so you can easily verify that your configuration isn’t at fault.
- Be careful with disabling extraneous text formats, you might have content which was using it and getting that transferred is incredibly cumbersome (I migrated again, when I noticed that).
Contrib module are very much hit and miss with 8.0 RC 3, there are some which work perfectly and others where work hasn’t really started yet. Here’s what you can try to manage things:
- Always google the module name with “drupal 8”, an issue is likely to exist and in many cases a third-party repository contains a newer state than drupal.org / composer.
- Consider using cweagans/composer-patches to track patches you need to make a particular version run.
- Write the port yourself.