Drupal notes from helping a client improve her development environment
| drupal, geekKeeping a to-do list helps you keep sane. If you don’t have a full-scale issue tracker, use a wiki page, text file, or something like that. It’s really useful to be able to get the list of things you’re working on or waiting for out of your head and into a form you can review.
*Drupal Features help you export configuration into code.* This is much better than creating an installation profile because you can update your features with new settings and apply them to existing sites. Invaluable when working with multi-sites that may need to be updated. You may need to clear your Drupal cache before you see changes applied.
Version control is really handy even when you’re working on your own. The ability to go back in time to a working setup (code + database) can help you experiment more freely and avoid late nights spent recovering from mistakes.
*Drush (Drupal shell) is awesome.* It’s a big timesaver. We use it to download and enable modules (dl and en), clear the cache (cc), run database updates (updatedb), launch a SQL console (sqlc), execute PHP (php-eval), run tests, and so on. I use it a lot because I hate clicking around.
Even more powerful with a little bit of xargs magic so that it’s easy to run a drush command against all the sites. Like this:
cat sites.txt | xargs -n 1 -I {} drush -l {} somecommand
Design decisions: Multisite without shared tables; services or syndication for sharing content between sites; central authentication for admin users…
Bash script to create or clone multisites makes tedious things a little bit simpler. Tasks:
- Create a database and give access to a user.
- Create the site and files directory.
- Create the settings.php with the database settings.
- Copy the base database into the new database.
- Create a symbolic link.