Как пропустить определенные таблицы с помощью drush sql-dump?

drupal.stackexchange https://drupal.stackexchange.com/questions/175550

  •  29-09-2020
  •  | 
  •  

Вопрос

У меня есть файл конфигурации 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 и, необязательно скопируйте его на один из мест, перечисленных ниже в порядке приоритета:

  1. Папка Drupal Site (например, сайты / {по умолчанию | example.com} /drushrc.php).
  2. drupal / drush и сайты / все / drush папки или папка / drush в каталоге выше корня Drupal.
  3. в любом месте, как указано опцией --config (-c).
  4. Папка пользователя .drush (I.e. ~ / .drush / drushrc.php).
  5. Система широкая папка конфигурации (например, /etc/drush/drushrc.php).
  6. 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
.

Документация SQL-Dump

По какой-то причине у меня кэш_* не работал с drush 9+, пока я не пропустил подчеркивание.Однако это может быть специфично для моего (сервера) bash/терминала.Что сработало для меня:

drush sql-dump --skip-tables-list=cache*

и вы всегда можете добавить --verbose чтобы увидеть фактический дамп MySQL и его параметр --ignore.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top