Давайте прямо сейчас начнём пользоваться Drush? Нет ну правда! Это очень удобно, это ускоряет рутинные операции. Только представьте - обновить ядро Drupal можно всего одной командой Drush!
Я сам до последнего сопротивлялся этой идее. Думал что надо что то устанавливать на сервер, а половина клиентов висит на обычном шаред хостинге итд... Так вот выбрасываем этот хлам из головы, заливаем папку drush в корень вашего Drupal сайта и всё, его уже можно использовать! Далее подключаемся по SSH заходим в папку drush и начинаем выполнять команды.
Основные команды
Основаная информация о сайте и статусdrush status
Очистить кэшdrush cc all
Очистить кэш даже если друпал упалdrush sql-query "DELETE FROM cache"
sql-query
выполняет SQL запросы в базе данных, в которой установлен Drupal.
Загрузка последней версии модулей (пример 2 модуля за раз)drush dl module1 module2
Загрузить dev версию модуляdrush dl views-7.x-3.x --package-handler=git_drupalorg
Похоже что добавление --package-handler=git_drupalorg
больше не обязательно в последних версиях.
Активировать модульdrush en name_of_module -y
-y
пропускает запрос подтверждения
Отключить модульdrush dis name_of_module
Отключение модуля если Drupal упалdrush sql-query "UPDATE system SET status = '0' WHERE name = 'module_name'"
drush sql-query "DELETE FROM cache_bootstrap WHERE cid = 'system_list'"
Удаление модуля через Drushdrush pm-uninstall module_name -y
Посмотреть доступен ли модульdrush pm-list | grep module_name
Посмотреть включен ли модульdrush pm-list --status=enabled | grep module_name
Показать все включенные модулиdrush pm-list --type=Module --no-core --status=enabled
Обновить модульdrush up module_name
Обновить модуль до DEV версииdrush up MODULE_NAME-1.x-dev
Обновить друпал через Drushdrush up drupal
Обновить все модули и Друпалdrush up
Запустить update.phpdrush updb
Отправить e-maildrush php-eval "print mail('pere@example.com', 'Subject', 'Message', 'From: pere@example.com');"
Удалить полеdrush field-delete fieldname
Удалить экземпляр поляdrush field-delete fieldname --bundle=article
Вручную удалить поле и все его данные (не рекомендую)drush sql-query "DELETE FROM field_config WHERE field_name = 'fieldname'"
drush sql-query "DELETE FROM field_config_instance WHERE field_name =' fieldname'"
drush sql-query "DROP TABLE field_data_field_fieldname"
drush sql-query "DROP TABLE field_revision_field_fieldname"
Задать пароль полтзователяdrush upwd --password="asdf" admin
Блокировать пользователяdrush user-block joe
Завершить сессии всех пользователейdrush sql-query 'TRUNCATE TABLE sessions;'
Завершить сессию определённого пользователяdrush sql-query 'DELETE FROM sessions WHERE uid = 2;'
Получить одноразовую ссылку для входа под админомdrush uli
Запустить кронdrush cron
Запустить крон без исключенийdrush cron-run
Задать переменнуюdrush vset variable_name 'value'
Получить значение переменнойdrush vget variable_name
Показать последние события в логах (watchdog)drush ws
Показывать логи в реальном времениdrush ws --tail
Запустить свой кодdrush eval "variable_set('foo', 'bar');"
Пересканировать весь код в модулях включая в себя каталоги, сохраняя расположение каждого интерфейса или класса в базе данныхdrush eval "registry_rebuild();"
Если не вышло потому, что Drupal не загружается, сделать это таким образом:drush dl registry_rebuild
drush rr
Изменить уровень предупреждений
Отображать только ошибки и предупрежденияdrush vset -y 1
Отображать всёdrush vset -y 2
Скрыть всёdrush vset -y 0
Включить режим обслуживанияdrush vset -y maintenance_mode 1
Войти в консоль MySQLdrush sql-cli
Импорт резервной копии базы данныхdrush sql-cli
Экспорт резервной копии базы данныхdrush sql-dump | gzip --stdout > $(date +\%Y-\%M-\%d-\%H-\%M-\%S).sql.gz
Удалить все таблицы базы данных (очистить базу данных)drush sql-drop
Полезно перед импортом резервной копии базы данных.
Отобразить все drush сайтыdrush site-alias
Установить Друпал через Drushdrush site-install
Удалить все материалы определённого типаsudo drush generate-content 0 --kill --types=facebook,instagram,tweet
Обратите внимание, должен быть установлен модуль Devel и Devel Generate. Альтернативой будет drush migrate-wipe
Удалить тип материалаdrush php-eval "node_type_delete('job_posting')node_types_rebuild();menu_rebuild();"
Генерировать произвольный контентsudo drush generate-content 20 --types=page
Создать скелет для кастомного модуляdrush mb my_module menu cron --write --name="My module"
Ещё больше отличных комманд можно найти тут: groups.drupal.org/node/28088
Так же смотрите drushcommands.com