Bash script to make development settings on local Drupal database
A common thing you do in Drupal web site development is to take a database dump from production/staging/testing and use it to update your local development environment.
In your local development environment you want other settings for things like error reporting and cache, enable/disable modules etc.
I recently upgrade my script for this to make use of Drush 3 and thought I would share it.
With Drush 3 I use the wonderful sql-sync command with site alias to update the database. I used to have a rather complicated Bash scripts to handle this, Drush is wicked cool!
drush sql-sync @example.com @example.dev
I then run this script and I’m all set up for development work. Make sure you replace all instances of “/path/to/” with proper values and of course add/remove stuff to suit your needs.
#!/usr/bin/env bash
# Script to make development settings on local Drupal database
drcmd='/path/to/drush' # Path to drush
# Optional site alias
if [ "$1" != "" ]; then
if [ "${1:0:1}" = "@" ]; then
sitealias=$1
else
sitealias="@"$1
fi
fi
echo "Start"
# Set variables
${drcmd} ${sitealias} variable-set --yes image_imagemagick_convert '/path/to/convert'
${drcmd} ${sitealias} variable-set --yes imageapi_imagemagick_convert '/path/to/convert'
${drcmd} ${sitealias} variable-set --yes cache 0
${drcmd} ${sitealias} variable-set --yes block_cache 0
${drcmd} ${sitealias} variable-set --yes page_compression 0
${drcmd} ${sitealias} variable-set --yes preprocess_css 0
${drcmd} ${sitealias} variable-set --yes preprocess_js 0
${drcmd} ${sitealias} variable-set --yes devel_api_url 'api.dev'
${drcmd} ${sitealias} variable-set --yes devel_error_handler 2
${drcmd} ${sitealias} variable-set --yes dev_timer 1
${drcmd} ${sitealias} variable-set --yes dev_query 1
${drcmd} ${sitealias} variable-set --yes dev_mem 1
${drcmd} ${sitealias} variable-set --yes error_level 1
${drcmd} ${sitealias} variable-set --yes securepages_enable 0
${drcmd} ${sitealias} variable-set --yes dummyimages_generate 2
# Enable development only modules
${drcmd} ${sitealias} pm-enable --yes devel coder reroute_email ie_css_optimizer drupalforfirebug dummyimage
# Disable production only modules
${drcmd} ${sitealias} pm-disable --yes xmlsitemap_engines apachesolr_search googleanalytics mollom twitter twitter_actions
# Clear the cache
${drcmd} ${sitealias} cache-clear all
echo "Done!"