Drush | Modules Unraveled
I'm releasing a new series today!!!!!
Over the last year, I've given a talk at DrupalCon, DrupalCorn Camp, and Drupal Camp Colorado all about using Composer and Configuration Management in Drupal 8. Those sessions were around 45 minutes, which is much too short to go in depth, and explain everything thoroughly.
Here's the issue
If you're using MAMP, you might have experienced an issue where a website loads just fine in the browser, but when you try to use a Drush command, you get an error like the following:
exception 'PDOException' with message 'SQLSTATE[HY000]  No such file or directory' in core/lib/Drupal/Core/Database/Driver/mysql/Connection.php:146
Have you started working with Drupal 8 yet? If so, you might have noticed that Drush 7 doesn't play nice with Drupal 8. And if you install Drush 8, that won't work with your Drupal 7 sites. Yikes!
Have no fear!
Here's how to install BOTH Drush 7 and Drush 8 AND have each project automatically use the version that corresponds to that install. It's stinkin' awesome!
I just spent the last two days trying to find the best, fastest, easiest way to install Drupal 8 locally on my mac... I think I've done it!
Using the awesome power of Composer, Drupal Console, and Drush, I can simply type "composer install" and then sit back and watch my site be created, install, and open in a new window!
I'm going to write a more in-depth blog post soon, but I couldn't help but share it now. I'm just too excited!
- What is Profiler Builder?
- Profiler Builder was created cause I’m lazy and wanted to just build a site, then figure out the profile, not build both at the same time. My work on profiler builder started to lead me toward the notion that install profiles and distributions can be more of a pain then they are worth, hence recipes.
- Is there anything that Profiler Builder doesn’t catch?
- How are you using Profiler Builder?
- What is the Drush Recipes plugin
- Drush Recipes is a series of drush calls chained together in a lightweight command-file, similar to chef and it’s recipes / roles structure.
- Why do this instead of just using standard drush calls?
- You might need to mess around w/ it to get a sense of some of the things you can do with it since it’s a lot more then just chain automation as it supports branching path logic, automatic recipe authoring, drush commandline recording to author recipes, the ability to take two sites and engineer the difference between them (as drush calls), remote loading of recipes, etc.
- I use TextExpander to do this, so I just type a shortcut, and my commands are filled in. How is using Drush Recipes different?
- Use cases for this?
- First-time site builds
- drush ddt
- Chain them together (reference)
- dwr - Interactive (What theme do you want to install?)
- Madlib (Tokenize Drush commands)
- Reference Make files
- Where can we see your recipes and contribute our own?
- What is Deployotron?
It’s a deployment tool.
A low-key approach to easy and safe deployment.
- When did you start developing it?
- Why did you feel it was necessary to add another layer on top of Drush?
Needed simple, safe, easy to grok deployment process. Not a Swiss army knife. Other solutions proved to be either too complex/feature-rich or require 3rd party software beyond a simple drush command.
- How does it work?
Deployotron is implemented as a drush command.
When deploying it runs a set of “actions” that does the different steps of deploying.
- What kinds of actions can you perform with Deployotron?
- Is this extendable? Can other developers add their own commands to be performed during deployment?
- Is there a way to configure deployment per environment? So that certain commands are always performed on Staging but not on Live.
- What needs to be setup before you can use Deployotron?
Deployotron requires drush and the appropriate ssh public keys on the target servers.
- How does it improve the deployment workflow?
Easy and fast deployment to other enviroments from the command line.
Quick to set up for a new project.
- What if you mess up? Is there a rollback feature?
There’s an OMG command which will import a dump and reset the codebase to the one that was deployed at the time.
- How does this integrate with other tools like Capistrano, Aegir, etc.
It doesn’t. Deployotron was meant to be more of an alternative; a simpler one.
- So, is this aimed at people hosting on shared hosts? Or do you need a VPS at minimum?
Not aimed at shared hosts, as such, but it does support it, given that you have ssh access and drush availability of course.
- How are you guys using it at Reload?
Very carefully :-)
With careless abandon.
- Do you know of anyone else using it?
No, not specificly, but there was some interest at the DrupalHagen DrupalCamp.