Давайте прямо зараз почнемо користуватися 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'"
Видалення модуля через Drush
drush 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
Оновити друпал через Drush
drush up drupal
Оновити всі модулі і Друпал
drush up
запустити update.php
drush updb
видалити поле
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
Увійти в консоль MySQL
drush sql-cli
Імпорт резервної копії бази даних
drush sql-cli
Експорт резервної копії бази даних
drush sql-dump | gzip --stdout> $ (date + \% Y - \% M - \ .- \% H - \% M - \% S) .sql.gz
Видалити всі таблиці бази даних (очистити базу даних)
drush sql-drop
Корисно перед імпортом резервної копії бази даних.
Відобразити все drush сайти
drush site-alias
Встановити Друпал через Drush
drush 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