A day of yak shaving and narrowly avoiding being nerd sniped

March 04, 2016

As I previously mentioned, I’d got a basic migration of configuration and content from the Drupal 6 Gallery Guide to a new Drupal 8 site up and running fairly quickly. It’s clear that a lot of good work has been done on the various migrate modules. It can’t have been easy, so thanks and kudos to the people involved.

The next task was to get the more complex data migrated. One of the main features on the site is keeping the addresses of art galleries, and showing their locations on maps. The D6 site used the Location, Gmap, and Views modules for this, but 2 out of 3 of those don’t have a stable D8 version yet, and don’t look like having one any time soon.

Try out the Address module, I thought. But that has dependencies on the address library, and the recommended way to install that is with Composer. For some reason I couldn’t get Composer working properly on my VDD Vagrant box, and I was starting to get frustrated.

I’d been meaning to try out Drupal VM for a while, and this seemed like an opportune moment. Trouble was, it fell over on the installation steps, with some problem to do with ansible-galaxy. To me that sounds like something out of one of Edward Lear’s nonsense poems. So often I hear my more devops-inclined colleagues talk about tools, and I have no idea what they’re talking about. They’d probably say the same thing about some of the dependencies in the grunt or gulp setups I work with.

Anyway, after some Googling and looking at Github issues, and editing a file written in a language I’ve never used before, and once assorted other yaks had been shaved, I had a shiny new VM set up, with Composer and a new version of Drush, and a bunch of other things I may need to care about later. I even had a clean Drupal install as part of the vagrant provision.

Having installed Address and Geolocation, they both seem to work well. The only trouble is that they don’t talk to each other. Geolocation gets and stores the latitude and longitude, and Address stores the street and the town and all that jazz. But they don’t talk to each other. If you’re using both modules, anyone creating content would need to enter the location in two different fields.

I was about to dive down the potential rabbit hole of trying to patch Geolocation to populate the fields provided by Address. Integration between Address and Geolocation would improve the user experience when people are creating new galleries, but the site already has data for over 500 galleries, so I can worry about that later. It’s a good example of how easy it is to get sidetracked by interesting-looking problems. For now, it should be possible to write a custom migration to get the data from the D6 site. And I just need to remind myself to stay focused on the minimum viable product…