drush - это интерфейс командной строки UNIX для доступа к вашему сайту на Drupal.

Справку о командах и опциях вызова drush можно получить так:

drush help

Если вы знаете команду, то для получения её параметров введите её вслед за help.

drush help up

Настройка и расширения drush

Скопируйте в свою домашнюю директорию шаблон файла настройки drush/examples/example.drushrc.php из предварительно скаченного архива модуля (например, по ftp) в файл .drushrc.php в корень вашего аккаунта.

Чтобы запускать drush под пользователем 1 установите:

// always run as user 1
$options['u'] = 1;


Чтобы видеть пароль БД в выдаче команды status вы можете установить:

// Show database passwords in 'status' and 'sql-conf' commands
$options['show-passwords'] = 1;


Вы можете раскомментировать предлагаемые заготовки и установить другие необходимые вам параметры.

Как ставить расширения drush

1. Создайте в своей домашней директории каталог .drush

cd
mkdir .drush


2. Скачивайте необходимые вам расширения drush

Например, для drush_make команда будет такой:

drush dl drush_make

Основные команды и использование drush

Для работы с drush удобнее сначала перейти в директорию вашего сайта.

cd ~/domains/example.com


Если ваш сайт находится на сервере, где файлы хранятся в директория public_html, её тоже надо указать.

cd ~/domains/example.com/public_html


Теперь можно вводить команды и осуществлять различные операции с сайтом.

Получение информации о сайте и всех проектах модулей или тем

В первую очередь посмотрите состояние вашего сайта командой status (сокращенно st).

drush status

Если в данной директории у вас организован мультисайтинг, то для того, чтобы посмотреть состояние сайта, отличного от сайта по умолчанию default, нужно использовать ключ  --uri=http://example.com (сокращенно -l http://example.com).

drush --uri=http://example.org status


или

drush -l http://example.org status


Если вы находитесь в месте, отличном о корневой директории сайта, то указать её можно используя ключ --root=<full root to example.com> (сокращенно -r ~/domains/example.com).

drush -r ~/domains/example.com status


С опцией --root нужно указывать полный путь.

drush --root=/home/u9999/domains/example.com status


В drush 3.0 можно использовать следующий синтаксис:

drush ~/domains/example.com#default status
drush ~/domains/example.com#example.org status

Получение информации о всех проектах модулей или тем

Для того, чтобы получить информацию о всех ваших модулях и темах нужно ввести команду pm-list (сокращенно sm).

drush sm

Получение информации о проекте модуля или темы

Для того, чтобы получить информацию о конкретных модулях и темах нужно ввести команду pm-info.
 
drush pm-info drupal

Получение информации о версиях проектов модулей или тем

Для получение информации о версиях модуля используйте команду pm-releases (info устаревшая форма).
Команда используется для того, чтобы решить какую версию модуля устанавливать или обновлять.

Для того, чтобы использовать команду pm-releases должен быть установлен модуль update.
Если он у вас не установлен, то установить его можно следующей командой:

drush en update


Посмотреть версии модуля backup_migrate:

drush pm-releases backup_migrate

 

Скачивание и установка проектов модулей и тем

Для того, чтобы скачать один модуль, тему или список нужно ввести команду pm-download (сокращенно dl).

drush dl module1 module2 theme1


Например, команда:

drush dl cck zen


загружает текущие рекомендуемые версии модуля cck и темы zen.

Скачиваем dev версию модуля backup_migrate.

drush dl backup_migrate-6.x-2.x-dev


Для того, чтобы скачивать модули в директории, отличные от принятых по умолчанию, используется опция --destination=<root>.

Для того, чтобы установить модули или темы используйте команду pm-enable (сокращенно en).

drush en cck zen


Можно использовать * в конце имени для формирования списка модулей.
Также будут установлены и зависимые модули.

Для того, чтобы выключить модули или темы используйте команду pm-disable (сокращенно dis).

drush dis cck zen


Можно использовать * в конце имени для формирования списка модулей.
Также будут выключены и зависимые модули.

Скачивание дистрибутива drupal

Для того, чтобы скачать текущюю версию drupal можно воспользоваться командами:

drush dl

 
или

drush dl drupal 


Пример установки дистрибутива в директорию вашего сайта.

cd ~/domains/example.com

drush dl drupal
cp -a drupal-6.17/* .
cp -a drupal-6.17/.htaccess .
rm -rf drupal-6.17

drush status

 

Обновление проектов модулей, тем pm-update (сокращенно up)

Для того, чтобы обновлять проекты должен быть установлен модуль update.
Если он у вас не установлен, то установить его можно следующей командой:

drush en update


Для того, чтобы обновить один модуль, тему или список нужно ввести команду pm-update (сокращенно up).

drush up module1 module2 theme1


Для того, чтобы обновить drupal до последней стабильной версии, нужно ввести команду:

drush up drupal


Перед тем как сделать обновление команда просматривает и выводит статус всех ваших проектов а также сохраняет предыдущие версии в директории backup в корне вашего сайта.
Этот путь можно изменить, например, для сохранения в корень вашего домашнего каталога с помощью опции --backup-dir=<root>.

Команда при необходимости сама осуществляет обновление базы данных.

Обновление кода проектов модулей, тем pm-updatecode (сокращенно upc)

Команда обновляет код проекта до последней стабильной версии. База данных не обновляется.

drush upc token


Для того, чтобы обновить базу данных самостоятельно, нужно ввести команду updatedb (сокращенно updb).
Действие команды эквивалентно запуску update.php.

drush updb

 

Удаление модулей, тем pm-uninstall

drush pm-uninstall module1 module2

 

Очистка кэша

Для того, чтобы очистить кэш, нужно ввести команду cache-clear (сокращенно cc).

drush cc
Enter a number to choose which cache to clear.
  [0] : Cancel
  [1] : all
  [2] : theme
  [3] : menu
  [4] : css+js
2


Очистить весь кэш:

drush cc all

 

Как делать бэкапы с помощью drush

Для начала введите команду drush sql-conf чтобы посмотреть имя вашей базы данных и другие параметры соединения.

drush sql-conf

Дамп базы данных

Бэкап текущей базы данных выполняется командой drush sql-dump.
Имя файла дампа указывается в опции --result-file=<root>.
Если вы создали в своей домашней директории файл .drushrc.php, то вы можете использовать опцию --skip-tables-key=common чтобы не делать дамп некоторых таблиц кэша и других, указанных в настройках.

drush sql-dump --result-file=~/db.example.com.sql --skip-tables-key=common


Дамп в файл архива db.example.com.sql.gz в корне вашей директории.

drush sql-dump --skip-tables-key=common | gzip > ~/db.example.com.sql.gz


Дамп в файл архива db.example.com.sql.bz2 в корне вашей директории.

drush sql-dump --skip-tables-key=common | bzip2 > ~/db.example.com.sql.bz2

 

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

Для восстановления базы данных из дампа используется команда drush sql-connect для получения параметров доступа к базе данных.

Восстановление базы данных из файла дампа db.example.com.sql в корне вашей директории.

cat ~/db.example.com.sql | `drush sql-connect`


Восстановление базы данных из файла архива дампа db.example.com.sql.gz в корне вашей директории.

gunzip < ~/db.example.com.sql.gz | `drush sql-connect`


Восстановление базы данных из файла архива дампа db.example.com.sql.bz2 в корне вашей директории.

bunzip2 < ~/db.example.com.sql.bz2 | `drush sql-connect`


Восстановление базы данных из файла архива дампа db.example.com.sql.zip в корне вашей директории.

unzip -p ~/db.example.com.sql.zip | `drush sql-connect`


Восстановление базы данных из файла дампа db.example.com.sql в корне вашей директории с использованием интерактивного интерфейса drush к mysql команда sql-cli (сокращенно sqlc).

drush sqlc
source ~/db.example.com.sql
\q


Команда drush sqlc позволяет выполнять и другие запросы на языке SQL к вашей базе данных.

Рекомендации

Создайте в своей домашней директории каталог, где вы будете хранить ваши бэкапы, например, /backup.

cd
mkdir backup


Во всех примерах используйте директорию backup для сохранения дампов:

~/backup/db.example.com.sql.gz


Для отметки времени и даты создания дампа вы можете использовать следующий способ представления имени дампа:

~/backup/db.example.com-`date '+%d-%m-%Y-%H-%M-%S'`.sql.gz


Для более полной информации по использованию drush смотрите следующие ссылки:

Страница проекта
http://drupal.org/project/drush

Документация и публикации

http://drupal.org/node/477684
http://developmentseed.org/blog/2010/mar/10/drush-30-more-powerful-flexi...

Комментарии (13)

mbaev #
1 год 35 недель назад
старейшина

Думаю, многим было бы полезно узнать еще и про Drush sql-sync

r--r@lis... #
2 года 46 недель назад
старейшина

Или если вы пользуетесь нормальным браузером - https://addons.mozilla.org/ru/firefox/addon/firessh/

Aleksh #
3 года 24 недели назад
старейшина

1. Создайте в своей домашней директории каталог .drush

cd

mkdir .drush

Это с помощью чего создается в windos PuTTY? Или файлового менеджера который на хостинге, как то не очень понятно.

annya #
3 года 24 недели назад
гость

Здравствуйте

Все действия с drush делаются через консоль(если у вас ОС Windows вам нужно воспользоваться Putty).

vagant #
3 года 27 недель назад
старейшина

Поясните, пожалуйста, зачем нужен http://drupal.org/project/drush (с разными версиями) - если фактически требуется перенести (и переименовать) лишь один файлик из этого модуля? Пытался нагуглить инфу, но не нашел ответа.

И ещё, расширения нужно качать в папку ".drush" (предварительно туда зайти) или выполнять команду "drush dl drush_make" прямо из корня?

Сорри за нубские вопросы.

annya #
3 года 27 недель назад
гость

Здравствуйте

Drush предустановлен не на всех хостингах, поэтому на серверах где его нет нужно скачивать drush отдельно. Также хочу заметить, что drush не требует компиляции на сервере - это просто набор bash-скриптов которые интегрируются с Drupal.

Вам не нужно отдельно скачивать расширение drush_make - в Drush 5(у нас установлена именно эта версия) данное расширение в ходит по-умолчанию.

r--r@lis... #
3 года 33 недели назад
старейшина

Подскажите, а как обновить установочный профиль, например: commerce_kickstart?

annya #
3 года 32 недели назад
гость

Здравствуйте

Рекомендую вам ознакомиться с этими рекомендациями по обновлению

HydroBla... #
4 года 4 дня назад
старейшина

Поясните по поводу --skip-tables-key=common
Как исключить не нужный кеш из дампа ?

Имя исключаемой таблицы должно быть после знака равно ?

Как быть если исключить необходимо более одной таблицы ?

annya #
3 года 51 неделя назад
гость

--skip-tables-key=common означает, что будут исключены, данные таблиц:
'cache', 'cache_filter', 'cache_menu', 'cache_page', 'history', 'sessions', 'watchdog' (при этом структура этих таблиц будет сохранена).

Т.е. это не имя исключаем, а набор таблиц. Вы можете в своем конфигурационном файле drushrc.php переопределить эти значения.

Более подробно об этом можно почитать здесь

keereel #
3 года 4 недели назад
старейшина

почитал комментарии в файле конфигурации drush... мне показалось, что необходимо использовать ключ --structure-tables-key=common для того, что бы данные не экспортировались, а только структура... или я что-то не так понял?
кроме этого, для того, что бы работал этот ключ, необходимо раскомментировать соответствующую строку в конфигурации.

annya #
3 года 3 недели назад
гость

Да, я ошиблась, --skip-tables-key - исключает таблицы полностью. --structure-tables-key - оставляет структуру. Насколько я знаю, значение common указано по-умолчанию, как array('cache', 'cache_filter', 'cache_menu', 'cache_page', 'history', 'sessions', 'watchdog');

keereel #
3 года 3 недели назад
старейшина

да, значение common есть в конфигурационном файле, но оно закоментировано.