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 удобнее сначала перейти в директорию вашего сайта. Далее под example.com подразумевается имя вашего домена. Если он кириллический, то используйте его запись в формате punycode.
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...
Comments (13)
Думаю, многим было бы полезно узнать еще и про Drush sql-sync
Или если вы пользуетесь нормальным браузером - https://addons.mozilla.org/ru/firefox/addon/firessh/
1. Создайте в своей домашней директории каталог .drush
cd
mkdir .drush
Это с помощью чего создается в windos PuTTY? Или файлового менеджера который на хостинге, как то не очень понятно.
Здравствуйте
Все действия с drush делаются через консоль(если у вас ОС Windows вам нужно воспользоваться Putty).
Поясните, пожалуйста, зачем нужен http://drupal.org/project/drush (с разными версиями) - если фактически требуется перенести (и переименовать) лишь один файлик из этого модуля? Пытался нагуглить инфу, но не нашел ответа.
И ещё, расширения нужно качать в папку ".drush" (предварительно туда зайти) или выполнять команду "drush dl drush_make" прямо из корня?
Сорри за нубские вопросы.
Здравствуйте
Drush предустановлен не на всех хостингах, поэтому на серверах где его нет нужно скачивать drush отдельно. Также хочу заметить, что drush не требует компиляции на сервере - это просто набор bash-скриптов которые интегрируются с Drupal.
Вам не нужно отдельно скачивать расширение drush_make - в Drush 5(у нас установлена именно эта версия) данное расширение в ходит по-умолчанию.
Подскажите, а как обновить установочный профиль, например: commerce_kickstart?
Здравствуйте
Рекомендую вам ознакомиться с этими рекомендациями по обновлению
Поясните по поводу --skip-tables-key=common
Как исключить не нужный кеш из дампа ?
Имя исключаемой таблицы должно быть после знака равно ?
Как быть если исключить необходимо более одной таблицы ?
--skip-tables-key=common означает, что будут исключены, данные таблиц:
'cache', 'cache_filter', 'cache_menu', 'cache_page', 'history', 'sessions', 'watchdog' (при этом структура этих таблиц будет сохранена).
Т.е. это не имя исключаем, а набор таблиц. Вы можете в своем конфигурационном файле drushrc.php переопределить эти значения.
Более подробно об этом можно почитать здесь
почитал комментарии в файле конфигурации drush... мне показалось, что необходимо использовать ключ --structure-tables-key=common для того, что бы данные не экспортировались, а только структура... или я что-то не так понял?
кроме этого, для того, что бы работал этот ключ, необходимо раскомментировать соответствующую строку в конфигурации.
Да, я ошиблась, --skip-tables-key - исключает таблицы полностью. --structure-tables-key - оставляет структуру. Насколько я знаю, значение common указано по-умолчанию, как
array('cache', 'cache_filter', 'cache_menu', 'cache_page', 'history', 'sessions', 'watchdog');
да, значение common есть в конфигурационном файле, но оно закоментировано.