How I upgraded my site to Drupal 8 on the train

By Erik, Sun, 12/06/2015 - 02:11
Well, November 19th was destined to be a momentous day and since I had started almost eighteen months ago, I thought it might be high time to actually convert my site to Drupal 8.0.0. But the only time I seem to be able to sit down and look at non work things is during my commute. On a train. With very… ummm… spotty internet connectivity at best. But what the heck. So luckily I have a local development copy of my site and a copy of the drupal git repo which was up to date. So I checked out a new copy of D8 into a folder and did a very basic drush site-install to get a Vanilla Drupal8 up and running

mkdir ~/src/epd8 && cd ~/src
git clone --local locald8.git epd8
cd epd8 && checkout 8.0.0
drush si --db-url=mysql://root@localhost/epd8 --yes
From reading the documentation on how to upgrade, I knew that I had to get a contributed module: migrate_upgrade which gives a UI to the migrate and migrate_drupal modules that are currently provided in core.

drush dl migrate_upgrade
drush en migrate_upgrade
The only modules I feel like I really needed were codefilter and mollom because I knew I could simply put in a set of HTML from a Twitter embed widget instead of using the [full twitter module]( So drush handled that for me as well.

drush dl codefilter mollom
drush en codefilter mollom --yes
I decided that even though this Drupal-7 site uses the blog module from core, that since it was [relegated to contrib]( and wasn't up to date that I would simply forego the blog functionality and use a normal entity/node type for the "ramblings". So, running the update via drush was as simple as:

drush migrate-upgrade --legacy-db-url='mysql://root@localhost/eporama_development' --legacy-root=$HOME/src/eporama
This did all the heavy lifting and converted what I needed in one fell swoop. There were some obvious problems with some of the images due to the fact that I had hard coded some paths in the body of a few posts, but overall the content: nodes, users, comments and basic configuration of content types came through without a problem.


The content of this field is kept private and will not be shown publicly.

Filtered HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <img src alt height width> <pre>
  • Lines and paragraphs break automatically.