Drush швидкий старт і основні команди

Давайте прямо зараз почнемо користуватися 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

Схожі статті