Вы здесь

Drupal + Drush. Часто используемые команды.

Всем привет!
Хочу поделиться списком часто используемых команд Drush.

Загрузка и установка сайта

Загрузка последней стабильной версии Drupal

drush dl 

Предварительный выбор версии

drush dl --select

Установка сайта со стандартным профилем

drush site-install standard --db-url='mysql://[db_user]:[db_pass]@localhost/[db_name]' --site-name=Example

Полезные опции
--account-name=admin
--account-pass=password
--clean-url
--account-mail

Загрузка модуля (в папку sites/all/modules)

drush dl modulename

Активация модуля

drush en modulename -y

Перевод сайта на русский язык

Загружаем и включаем модуль l10n-update

drush dl l10n_update
drush en l10n_update -y

Загружаем расширение drush для работы с языками

drush dl drush_language

Добавляем, включаем и делаем дефолтным русский язык

drush language-add ru
drush language-enable ru
drush language-default ru

Обновляем список переводов с сервера

drush l10n-update-refresh 

Переводим сайт на русский язык

drush l10n-update

Обновление сайта и модулей

Обновление всего сайта

drush up

Обновление только ядра

drush up drupal

Обновление указанного модуля

drush up modulename

Обновление всех модулей сайта, без ядра

drush up --no-core

Обновление только тех модулей и ядра, где есть обновление безопасности

drush up --security-only 

Бекап сайта

Бекап файлов и базы данных в архив

drush archive-dump --destination=site_backup.tar.gz 

Восстановление файлов и базы данных из бекапа

drush archive-restore site_backup.tar.gz

Полезные опции
--exclude=sites/default/files
--no-core
--overwrite

Бекап базы данных

drush sql-dump

Импорт базы данных из бекапа

drush sql-cli

Команды на все случаи

Очистка кэша

drush cc all

Запуск крона

drush cron

Создание нового юзера

drush user-create user1 --mail="mail@mail.ru" --password="pass"

Даём юзеру user1 роль role1

drush user-add-role role1 user1

Смена пароля у user1

drush upwd --password="newpass" user1

Удаление юзера вместе с контентом

drush user-cancel username --delete-content

Включение режима обслуживания (0 - выключение)

drush vset maintenance_mode 1

Синхронизация сайта

Синхронизация базы данных с удаленного сервера на локальный.

drush sql-sync @prod @local

Полезные опции:
--create-db
--tables-list
--skip-tables-key

Синхронизация файлов с удаленного сервера на локальный.

drush rsync @prod @local

Полезные опции:
--exclude-files

@prod @local - это алиасы сайта. Прописываются тут - ~/.drush/aliases.drushrc.php

<?php
$aliases['local'] = array(
 'root' => '/path/to/drupal/root',
 'uri'  => 'yoursite.localhost',
  );
$aliases['prod'] = array (
'uri' => 'yoursite.com',
'root' => '/path/to/drupal/root',
'remote-user' => 'ssh-user',
'remote-host' => 'ssh-host',
);
?>
8
9
24.05.2015 - 11:28

Комментарии

Аватар пользователя zniki.ru
zniki.ru – 24.05.2015 - 12:16

Я часто пользуюсь модулем для Drush Registry Rebuild.
Выручает когда модули или темы переместить в другую папку.

drush dl registry_rebuild
drush cc all
drush rr
Аватар пользователя maked1sky
maked1sky – 24.05.2015 - 13:11

drush работает со многим модулями:
например с devel generate

drush genc 20 --types=articles

Очень удобно

Аватар пользователя SAM
SAM – 24.05.2015 - 20:28

drush l10n-update-refresh (обновить список переводов с сервера)
Можно ещё drush make запилить.

Аватар пользователя maked1sky
maked1sky – 25.05.2015 - 09:58

Спасибо, добавил drush l10n-update-refresh

Аватар пользователя Dmitrii [18+]
Dmitrii Varvashenia – 25.05.2015 - 21:40

Еще из наиболее часто используемого:
drush st - состояние сайта
drush cc - выдаст запрос на какой кэш чистить
drush updb - update.php
drush sql-drop - убить все таблицы в базе
drush fl - список фич
drush fd машинное_имя_фичи - посмотреть feature diff
drush fra - реверт всех фич
drush fr машинное_имя_фичи - реверт фичи
drush fu машинное_имя_фичи - обновить код фичи
drush uli - одноразовая ссылка на вход админа
drush uli user_id или user_email - одноразовая ссылка на конкретного юзера
drush pm-list --status=enabled - список включенных модулей
drush vget - все переменные сайта
drush vget название_или_часть_названия_переменной - не все переменные сайта
drush vset название_переменной новое_значение - установить переменную
drush php-eval "variable_set('some_roles_roles', array('authenticated user'));" - установить переменную если она не строка
drush vdel название_переменной - убить переменную
Все команды drush поддерживают сайта алиасы. Имеют вид типа drush @site.alias команда. Удобно когда сайтов много и с ними нужно что-то делать удалённо. Приличные друпал хостинги имеют кнопку чтобы сгенерировать сайт алисы для использования на локальной машине.
Вроде не повторился

Аватар пользователя Chi
Chi – 27.05.2015 - 20:49

В drush 7 есть команда drush php которая открывает php консоль с уже инициализированным друпалом. При соответствующем знании Drupal API эта команда становится одной из самых востребованных.

Аватар пользователя SAM
SAM – 27.05.2015 - 17:05

С drush (из коробки), эта команда не работает.

Аватар пользователя Chi
Chi – 28.05.2015 - 06:04

Работает в Drush 7 и Drush 8.

Аватар пользователя SAM
SAM – 27.05.2015 - 21:19

Ясно, у меня Drush 6.
Даже на GitHub Drush 8 нет. Может в другом месте, не в курсе.