Как пропустить определенные таблицы с помощью drush sql-dump?
Вопрос
У меня есть файл конфигурации drush ~/.drush/drushrc.php:
if (!isset($options['structure-tables']['common'])) {
$options['structure-tables']['common'] = array(
'cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog'
);
}
$options['structure-tables']['common'] = array_merge($options['structure-tables']['common'],
array('ctools_css_cache', 'ctools_object_cache', 'logz', 'views_object_cache')
);
И у меня есть файл сценария bash:
/usr/bin/drush sql-dump --root="/home/username/domains/sitename/www" --skip-tables-key="common" --gzip --result-file=/home/username/backup/$year/$month/dbname_$date_now_time.sql
Но когда я выполняю его, в файле резервной копии все еще есть данные в таблицах кеша.Что я делаю не так?
И второй вопрос: если я помещу это в crontab, нужно ли мне поместить файл конфигурации куда-нибудь еще?
Я использую Drush версии 8.
Решение
Извините, я не могу вам много помочь с вашим первым вопросом ...
Ваш 2-й вопрос задавался:
и второй вопрос - если я помещу это в Crontab, мне нужно вставить файл конфигурации где-то еще?
the Drush Documentation Ссылки на сайт Drushrc.php Пример файла , который говорит, где вы Может разместить файл RC:
https://raw.githubusercontent.com/ Drush-Ops / Drush / Master / Примеры / eximum.drushrc.php
Переименуйте этот файл на drushrc.php и, необязательно скопируйте его на один из мест, перечисленных ниже в порядке приоритета:
- Папка Drupal Site (например, сайты / {по умолчанию | example.com} /drushrc.php).
- drupal / drush и сайты / все / drush папки или папка / drush в каталоге выше корня Drupal.
- в любом месте, как указано опцией --config (-c).
- Папка пользователя .drush (I.e. ~ / .drush / drushrc.php).
- Система широкая папка конфигурации (например, /etc/drush/drushrc.php).
- drush установка папки.
Для cron Документация рекомендует , что Drust будет настроен, чтобы запустить как тот же пользователь, который управляет вашим веб-сервером. Это говорит, что я рекомендую вам разместить свой файл RC в местоположении (5), в папке конфигурации системы. Да, более локализованные Drush RC-файлы будут затем переопределить файл конфигурации широкого общежития по мере необходимости (ну хорошо).
Другие советы
Дамп всех таблиц, кроме таблицы cache
и таблиц, начинающихся с cache_
.
drush sql-dump --skip-tables-list=cache,cache_* > dumpfile.sql
.
Только Структура базы данных.Нет данных вообще.
drush sql-dump --extra=--no-data > dumpfile.sql
.
Только данные .Нет данных кеша и никакой структуры кэша.
drush sql-dump --skip-tables-list=cache,cache_* --data-only > dumpfile.sql
.
Нет данных кеша, а сброс в их структурах.
drush sql-dump --structure-tables-list=cache,cache_* > dumpfile.sql
.
По какой-то причине у меня кэш_* не работал с drush 9+, пока я не пропустил подчеркивание.Однако это может быть специфично для моего (сервера) bash/терминала.Что сработало для меня:
drush sql-dump --skip-tables-list=cache*
и вы всегда можете добавить --verbose
чтобы увидеть фактический дамп MySQL и его параметр --ignore.