How the Code Consultant Bot tought me about a potential solution to Drupals' deployment horrors.

I just learned about the Code Consultant Bot, a chat-bot version of the Rubber Duck.

The gist is that by explaining your question to someone (or on Stackoverflow, or to a Duck, or a chat-bot), you think about the question in more abstract, simpler or different ways. It very often solves my problem.

I took the bot out for a test-drive. Posing my favorite problem to it: How to properly deploy Drupal without downtime and tedious manual configuration (answer: you cannot). Here is the transcript: 11:20:28
Hello 11:20:32
Hello, I'm your Code Consulatant
Ever notice how just talking through an issue with a co-worker is enough to help you solve a problem, even if they don't say a word? 11:20:32
Let me help you with your problems so they can keep working. 11:20:33
How do you do.  Please state your problem. 11:20:33 11:20:49
I want to deploy Drupal without downtime. 11:20:49
What would it mean to you if you got to deploy drupal without downtime  ? 11:21:10
then I would not need to take the site offline while rolling out a new release 11:21:10
You say then you would not need to take the site offline while rolling out a new release  ? 11:21:18
yes 11:21:18
You seem to be quite positive. 11:21:43
how would I release a drupalsite without taking the site offline? 11:21:44
Why do you ask ? 11:22:26
because Drupal stores its configuration in the database. The same database that contains the content. 11:23:09
What database are you using ? 11:23:16
MySQL 11:23:16
You're going to have to tell me more. 11:23:32
MySQL relational database 11:23:32
Is your database well normalized ? 11:23:37
yes, it is. 11:23:37
You are sure. 11:23:55
Well, no. You are right, that is part of the proble, 11:23:56
Are you saying no just to be negative? 11:24:27
how would I normalise Drupals database? 11:24:27
Liquibase would help you manage your database better.

LiquiBase. I am not sure about the practical application of this tool, and if it will fit well into a Drupal workflow. But from the description, it tries to solve exactly the Drupal Deployment Problem.

In the very least, it helps. a lot:

  • Rollback database to “tag”. Woa. If your deployment fails, whether or not you did that with any of the tools such as hook_update_N, Features, or whatever, there is still no rollback. Yet. Here it is.
  • Database diff changelog generation. Especially usefull on your development machine: it allows you to record all the changes you made while developing the new release for your site. Even if such a changelog helps you to write a release-script manually, it is very helpful. Did you never forget to set that one checkbox on live, because you forgot you had it checked on your development machine? Causing a Giant Shipment of Fail?

Funny. To learn a new tool from a bot. What is next? Bots solving our actual solutions for us?

This article was published on And migrated to this blog.


About the author: Bèr Kessels is an experienced webdeveloper with a great passion for technology and Open Source. A golden combination to implement that technology in a good and efficient way. Follow @berkes on Mastodon. Or read more about Bèr.