I started re-reading Dante’s Inferno, again, around the same time I started a recent project helping a small non-profit organization upgrade to Drupal 8 from Drupal 6, and I am convinced that the simultaneity of the two events is not coincidental.
Now for context, I am a native Drupal developer who has been building sites with Drupal since 2004. I am considered at this point somewhat of an expert drupal developer, which is bound to happen if you are using a tool consistently for as long as I have been.
That said, I recently ran into a nightmare that would have required more from me than I was willing or prepared to give for free to my client, and I solved it by asking for help.
It’s the worst-case scenario that every developer fears. Moving a site from drupal 6 to drupal 8 is in itself a weighty challenge which I accepted with confidence as I have made similar upgrades recently and know what is involved.
In this case, there were deeper problems lurking that I only found once the contracts were signed.
It turns out that they were hosted on Linode, which is a great host if you know what you are doing and regularly upgrade the server software and kernel.
Long story short, their Drupal 6 installation was teetering on a kernel of Ubuntu 8. This version of server software was state of the art in 2008.
To make matters worse, their Drupal 6 installation had CiviCRM 4.1.5 running on it which itself is a minimum of 3 major version upgrades behind - all of which require their own version of php.
After copious digital duct-tape on their server, which itself took hours and many support conversations, I started work.
I had gotten to the point where all of their Drupal data was appearing and working in the Drupal 8 context, and it became time to start looking at the upgrade of their CiviCRM database to the new context, which proved to be a little like sticking yourself in the eye with a hot poker. For starters, the upgrade would have to start in-situ with their Drupal 6 site and would require php5.3 of which there are no normal repositories available. The closest was php5.6 which was not cutting it.
Meanwhile, I am burning through precious hours that I cannot ethically charge the already broke client for. At some point between stoic mortification and senseless weeping, I decided to ask for help.
I was FLOORED. They were able to solve the issues I was having without flinching, and ended up billing us for less than their original estimate, and many many hours less than what I had already spent spinning my wheels. They were responsive immediately even during the holidays. Their service was compassionate and deftly skilled beyond what I was expecting.
But it doesn’t stop there.
About a week and a half into the new installation, I realized that somewhere in my mortification/weeping cycles I had sent them an earlier (wrong) version of the database, and that we were missing a month and a half of CiviCRM data.
Again I wept. Again I called for help. And again, the help arrived with a swiftness that was astounding. Not only were they able to bring back the data for the last month and a half that was missing, they were also able to preserve the new data that the client had been entering into the Drupal 8 CiviCRM before we realized that things were not right.
Long story short, no data was lost (which is AMAZING) , the client is happy as a clam, and I avoided a nervous breakdown.
If you are a developer in a similar position, do not be afraid to ask for help. And if you are looking for help, look no further. MyDropWizard is the SECRET POCKET NINJA you need.