I decided to revive my old website and upgrade it from Drupal 7 to Drupal 8 in order to see how the migration process was coming along. I want to automate the process in order to help my clients and discovered a real shortcut by using Cloud 9. Cloud 9 is a company that sells Ubuntu development server instances and offers a free account that allows you to create one private server and as many public sites as you want using the dashboard:
You can create and delete as many public servers as you want and, as well, set up one private server. And each one has a web based Integrated development environment (allowing you to edit, test and debug software), access to a command line shell and facilities for sharing access and collaborating on projects.
Spinning up servers on demand for migrations and upgrades has a number of advantages:
- You get a full LAMP stack immediately – no need to configure Apache etc.
- You can easily create multiple instances for each stage of your migration process so that backend, frontend, graphics teams etc. can work in parallel.
- If something gets irretrievably messed up the overhead for starting again is a few clicks on the dashboard to create a new server and a checkout from your version control system.
In addition to using C9 I use the drush (DRUpal SHell) utility, the Swiss Army knife of Drupal administration. No one attempting a Drupal migration should be without it. It allows you to perform tasks difficult or impossible to perform via the web interface via short command line commands. For example a drush command to download a copy of Drupal 8:
drush dl drupal-8 –select
Is considerably less effort than locating a download site, downloading, extracting and copying the files to your web root. Drush commands can be stacked up in bash shell scripts and you can also create new drush commands making it possible to automate large portions of your migration.
Let’s take a look at how my conversion went. This is my starting site, a Drupal 7 install using the Koi theme as well as Panels and Views.
Using drush I downloaded Drupal 8 and then opened the site url and went through the web based install process. At the end of it I had an empty Drupal 8 install to which I added the following modules:
I also enabled the Drupal Upgrade UI module:
And then proceeded to upgrade.
Here’s the pre-upgrade report produced by Drupal – ‘available upgrade path’ means I can deal with this stuff and ‘missing upgrade paths’ means I can’t deal with this stuff. I’d assume this will be typical of a small, Panels using Drupal site.
Are you sure?
17 available upgrade paths 42 missing upgrade paths
Upgrade analysis report
Missing upgrade paths
The following items will not be upgraded. For more information see Upgrading from Drupal 6 or 7 to Drupal 8.
AVAILABLE UPGRADE PATHS
Block block block_content
A number of modules I was using have no Drupal 8 versions and so their data can’t be converted. The ones that concern me are the Chaos Tools, Views (this is in core now but not converted?) and Panels modules which are, IMHO, the best thing about Drupal. You’ll still have to pick a new theme and customize a base / build from scratch as well. And although the migration info form asks for the path to the files directory it didn’t move the contents.
The conversion seems to do a good job on content nodes though so I’d say it’s probably worth using. In the end, this is what I got: