Five Drush commands I can't live without

Drush is our Drupal command line tool of choice at Third and Grove. We automate or simplify everything we can with drush, from using drush release scripts for seamless launches to custom drush commands that make development more efficient.

Here are five Drush commands I use frequently that I can’t live without:

  1. drush fu MODULE_NAME Features is a big part of how we build, test, and deploy Drupal at Third and Grove. This command automatically captures any overridden Drupal systems in your features module MODULE_NAME and downloads the entire module source code of MODULE_NAME over the current module. No more exporting, unarchiving, and copying files. (And yes, the command also captures any code level changes to any files in your module, so those aren’t lost.)

  2. drush cc all It’s well known that the first debug step in Drupal is clearing the Drupal cache. This simple command flushes all (most of the time) of Drupal’s cache.

  3. drush uli USERNAME This handy command will give you a one-time login link for any user account on your site so you can quickly login as that user. This is very helpful for troubleshooting permissions issues and you have to access a client account where you can’t and don’t want to change the password.

  4. drush php-script FILENAME.php Sometimes you need to write a custom throw-away script to perform some cleanup. Since it’s one-time you don’t want to write a custom Drupal module, but you would still like to have access to the full Drupal API. Enter php-script. This command boots up the Drupal API then runs any php file you point it to, where you have full access to the Drupal api. This command is vital in drush release scripts.

  5. drush sql-drop MySQL doesn’t have a command to drop every table in a database while preserving the database itself, but sometimes that is exactly what you need to do. sql-drop does just that: it loops through every table in your database and drops it. Simple but very handy when writing scripts to automate updating your local from production.

Bonus!

  1. drush golocal This isn’t a core Drush command but a custom command we use on all of our projects. It makes your local Drupal instance very developer friendly.

  2. drush @server.environment ANY-DRUSH-COMMAND Drush aliases let you run any drush command on a remote server from your local machine via the magic of SSH key-based authentication. We won’t go into how to set this up in this post, but if you use a platform like Acquia or Pantheon they are already set up for you. They are also very easy to set up with your own server once you see an example. Use them!

Tags: drupal, drush, php

Justin Emond, CTO and Founding Partner

Justin is an engineer, project manager, published author, and the co-founder of Third and Grove. Justin has worked on both sides of the technology world, both in internal technology departments and as a consultant delivering services to those on the inside. Justin is the author of Pro Web Project Management (Apress, 2011), a pragmatic guide to managing web projects, and the creator of Droptor, a web application that helps teams manage sites powered by the Drupal content management system. Justin has a degree in Psychology from the University of Southern California and not Computer Science because, as he told his skeptical parents, 'There is no money in computers.' Justin is always on the look out for a tasty new craft beer.