Ready to watch this entire course?
Become a member and get unlimited access to the entire skills library of over 4,900 courses, including more Developer and personalized recommendations.Start Your Free Trial Now
- View Offline
The course describes how to manage users, download and install modules and themes, archive and restore your entire site, and employ site variables for fast, full control over your Drupal sites. Plus, discover how to script an entire Drupal site installation with and without site profiles.
- What is Drush?
- Installing the prerequisite files
- Installing Drush with PEAR, manually, and just for Windows
- Installing Drupal sites
- Managing themes
- Controlling user access
- Controlling cache and cron
- Reading logs
- Updating modules
Skill Level Intermediate
Keeping Drupal in the various modules up-to-date can be a pain. In Drupal 6, downloading and extracting individual modules was cumbersome and repetitive in a very manual process. In Drupal 7, module updates were streamlined through the browser interface, but it still took a number of steps. To make this task easier, Drush provides some utilities that will update both core and contributed modules. To demonstrate these utilities, I'm going to quickly set up an intentionally out-of-date site using Drush package manager download and site install.
Change directory out of the siteroot. Next, download an older version of Drupal, I'll use Drupal 7.15, so, "drush dl drupal-7.15". Change directory to "drupal-7.15" and then we'll perform a site install again. This is going to overwrite the database used by Drupal-7.17. If you're sure that there's nothing to lose, say yes to the prompt, so, drush si --db-url=mysql://root:firstname.lastname@example.org: 3306/drush, and then, account-pass=admin.
If you're sure, say yes. Next, download an old version of the Devel module, in this case 1.2, drush dl devel-1.2. Enable devel in one command without saying yes, drush -y en devel. Now that an out-of-date version of Drupal has been installed and an out-of-date module has been enabled, execute the cron; this will among other things check for updates, drush cron.
Notice that this time cron attempted to send an email. This is because Drupal is not up-to-date. Open a browser and navigate to Druple-7. 15 and log in using the admin username and password, navigate to Reports>Status report. The Drupal core update status is not secure, out-of-date and Module and theme update status is also out-of-date.
The devel module can be updated through the web interface, but when I click on information about the Drupal update, I see that this is a manual update. Normally, this would be a big production needing many steps, but Drush allows everything to be done in one Command. It's best practice to back up the siteroot and database before doing an arbitrary update, as usually module and core updates go smoothly, but there's always the edge case that can give you a in capital letters a Very Bad Day, if you don't back up.
Out of the box and by default, project manager update will also back up the replaced code automatically, but not the database, I'll go into greater detail about manually archiving and restoring sites in the next segment. For now, since this is a freshly installed demonstration site, it's safe to proceed. The Drush command pm-update code aliased as "drush upc" is a powerful tool; upc will display the currently available information for Drupal core and all enabled projects that allow updating to the latest recommended releases.
I look at the help shows the scope of all the options available. If I wanted to exclude core from the updates or only apply security updates, there are options that are available for that level of granularity. For now, I'll stick with an arbitrary update. For database updates the manual command, drush pm-updatedb, which is aliased as updb, replaces the need to navigate to update.php with the browser.
While both of these commands are available separately, they've been combined for convenience into one mega command, project manager update, aliased as "up", drush up. Following the update, database updates will be applied. Each step provides an interactive yes or no option which can be overridden with -y like other commands, drush up. Information about all the pending updates and the potential consequences of proceeding are shown. Am I sure that I wish to continue? Yes.
Do I really want to continue with updating Drupal core? Yes. This pause is the downloading and extraction of the updates. Additionally, all database updates are shown and the option to continue is given. drush up, automatically downloads, installs both the core upgrade and module upgrade, then applies the pending database update. Next, execute cron to check for updates, drush cron. Navigate back to the status report, everything is now shown as up-to-date.
Now in a production site, additional care should be taken to back up both the database and files of a site. Drush provides convenient utilities to archive and restore a site.