In the first post of this series on Drush Make we looked at building a custom Drupal install profile on Acquia Cloud using Drush make. In this installment, we look at managing and updating the code in your install profile and deploying it onto Acquia Cloud. Keeping up with new releases is one of the most important aspects of maintaining any site and leveraging Drush make can dramatically reduce the effort involved with that process.
If you’re unfamiliar with Drush, there is extensive documentation provided in their github repository.
Maintaining your Make
Drush Make files are essentially a recipe for building your site’s platform. These can be updated to include new custom module releases, as well as core and contrib module releases. As an example, you can take a look at the make file we used in the first blog post. When upgrading Drupal, normally you’d find yourself backing up your sites directory, replacing everything outside of it, and then doing individual contrib module upgrades independently after doing a core upgrade. Drush make steps into this space and streamlines your workflow by allowing you to maintain a single file that documents all the contrib and custom modules required to build your site’s platform. With this file and a single drush command you can rebuild this platform on demand. This is a significant shift from normal Drupal maintenance because instead of managing Drupal core independently from your site’s contrib modules, you are instead managing a single file that effectively describes your site’s needs.
After a recent Drupal security issue, I upgraded Drupal core in my personal install profile. I also noticed I had a handful of contrib module updates that I had neglected, some of which were also security issues and others that were simply nice to have. All that was required to get this working was an update to my .make file. Once done I simply invoked drush make and rebuilt the site, installing the Core update and required module and config changes along the way.
Acquia Cloud takes this workflow one step further by allowing you to rebuild the platform in your development environment, and pull your data and files from production, run your updates and then push everything into staging or production servers.
Once you’ve updated your .make file, you can simply “Install Drupal” again like we did in the first blog in this series:
Point Acquia Cloud at your .make file, and let Cloud rebuild the entire platform for you. Acquia Cloud will download the .make file and build a new platform completely overwriting our Dev environment.
Once Cloud has rebuilt your platform, you can get your content, files and more back by simply dragging and dropping your database and files from production (or staging in my case) into development.
You now have a completely new and up-to-date code base with your old database and files. Running update.php on your Dev environment will update any database schema your new core more module version may have introduce and will result in a Drupal install with an updated core and all your contrib and custom modules updated to the version you specified in your .make file.