Drush is a command line shell and scripting interface for Drupal. It provides commands to update modules, enable and disable modules, clear caches, and perform other administrative tasks. Drush works well with Linux hosting and is useful for local development, deployment, backups, and performing repetitive tasks. Basic Drush commands include checking the status, downloading modules, enabling and disabling modules, and clearing caches. Drush can also be used to install Drupal sites, recover user passwords, perform minor and major version updates, and integrate with Git and cron jobs for automated deployment and backups.
2. For whom?
• Who wants to implement current updates rapidly
• Who doesn’t like to do the same actions again and again
• Who chooses Linux hosting
• Who likes shell (drupal+shell=drush)
• And it is comfortable for local developing (deployment,
supporting, migration, backup)
3. Basic Commands
• Drush <host> status
• Drush dl <project_1> < project_2> < project_3>
• the same with drush en/dis/pm-uninstall
• Drush cc [all|menu|css-js…]
• Drush help <some_command>
• etc
4. Coworking Drush and Linux
• For example:
• drush dis pathauto && drush pm-uninstall pathauto &&
rm –rf pathauto
• drush dl omega_tools && drush en omega_tools –y
• drush pm-list | grep omega
5. New Modules - New Commands
• For example:
• drush omega-subtheme "Test theme" html5
--machine_name=test_theme && drush en test_theme -y && drush
pm-list | grep test_theme
6. Install Drupal
• Prepare database (mysql>create database
<DB_name>;)
• Use one drush command site-install (or alias si)
• drush si standard --db-
url=mysql://<DB_user>:<passwd>@<DB_host>/<DB_n
ame> --db-su=<admin> -db-su-pw=<some_password>
--site-name=‘Dev Site!’
7. Recover user’s password
or how to crack Drupal users
Use
•drush uli -l http://<somehost>
or
•drush upwd <user> --password=<password>
8. Minor Drupal Updating
7.10 to 7.14
•!Backup! Project DataBase and Files /.htaccess and robots.txt
•Move from project all custom files/folders
•Switch on update module
•drush upc / up -y
•Wait for a moment
•That’s all
•It takes you about 5 minutes
•Use the same command for contrib modules UPD
9. Major updating… faced with
• Contributed module developing (for example:
/project/photos – last update - 2009-Dec-30)
• But it needs to migrate about 150 albums and 6000
photos
• If you still hardcode (or hook) contributed modules
• Need to rewrite custom themes/modules and migration
scripts
10. Drush Updating
• /usr/local/share/drush
• cd /usr/local/share/
• drush dl drush --destination=.
• and use drush cc drush (clear drush cache)
11. qd command
• ready Drupal profile
• Sqlite issue
• Server settings (ports, proxy)
• Why to do it?
12. Alias
• $aliases['dev'] = array('root' => '/path/to/drupal',
'uri' => 'dev.mydrupalsite.com', );
• drush @dev status
• $ drush --root=/path/to/drupal
--uri=dev.mydrupalsite.com status
13. Git + cron + drush
• GitHub.com is our basic repo
• Use script files (*.sh)
• Use git command (for example: git pull) there
• Use drush command there (sql-dump or cc all)
• And cron schedule (crontab -e)
15. Drush in windows
• Windows installer from 5.x version
• To install with online connection (required pecl library)
• Additional mysql software tuning (for example drush sql-
dump)
16. Drush Hardships
• To start using it. For window’s and click-mouse funs it may be a
psychological issue
• That's not the game for share hosting
• More flexible and usable in Linux platform.
• At the beginning you need to learn a list of popular commands. U
can print it and stick to wall.
• Update modules issue in distributives (for example, OpenAtrium)
17. Conclusion
• Use open source software
• Commands shell – more health-given for your fingers =)
• It saves your time!
18. Useful links
• drush.ws - documentation
• http://igusev.ru/drupal/omega/omega-drush-subtheme-creation - use
with omega
• http://www.summasolutions.net/blogposts/implementing-drush-commands
- write your own commands
• http://civicactions.com/team/owen_barton - interesting screencasts
19. Thanks
Michael Volchek
Drupal Club (Belarus)
skype: fannrmus
twitter: mikhail_volchek