Mam plik konfiguracyjny 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')
);
I mam plik skryptu 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
Ale kiedy go wykonuję, plik kopii zapasowej nadal ma dane w tabelach pamięci podręcznej. Co ja robię źle?
Drugie pytanie brzmi - jeśli umieszczę to w crontab, czy muszę umieścić plik konfiguracyjny w innym miejscu?
Używam wersji Drush 8.
drushrc.php
to nie jest uruchamiane. Wypróbuj var_dump$options['structure-tables']
w tym,drushrc.php
aby potwierdzić, że jest uruchamiany.Odpowiedzi:
Przepraszam, ale nie mogę ci pomóc z pierwszym pytaniem ...
Twoje drugie pytanie:
Te linki dokumentacyjne drush do drushrc.php pliku przykład , który mówi, gdzie można umieścić plik rc:
https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.drushrc.php
W przypadku Crona dokumentacja zaleca skonfigurowanie Drusha do działania jako ten sam użytkownik, który uruchamia twój serwer WWW. Biorąc to pod uwagę, zalecam umieszczenie pliku rc w lokalizacji (5), systemowym folderze konfiguracyjnym. Tak, bardziej zlokalizowane pliki Drush rc będą musiały w razie potrzeby zastąpić ogólnosystemowy plik konfiguracyjny (no cóż).
źródło
Zrzuć wszystkie tabele oprócz
cache
tabeli i tabel zaczynających się odcache_
.Tylko struktura bazy danych. Brak danych.
Tylko dane Brak danych w pamięci podręcznej i brak struktury pamięci podręcznej.
Brak danych w pamięci podręcznej, ale zrzut w ich strukturach.
dokumentacja sql-dump
źródło
--extra=--no-data
nie działało dla mnie, ale mogłem to zrobić--skip-tables-list="*"
i to zadziałało."cache,cache_*"
aby zapobiec dopasowywaniu przez powłokę plików wywoływanychcache_*
w katalogu roboczym.Z jakiegoś powodu cache_ * nie działało dla mnie z drush 9+, dopóki nie pominąłem podkreślenia. Jednak może to być specyficzne dla mojego (serwera) bash / terminalu. Co dla mnie zadziałało:
i zawsze możesz dodać,
--verbose
aby zobaczyć rzeczywisty zrzut mysql i jego parametr --ignore.źródło
cache_*
pasuje do jakichkolwiek plików w bieżącym katalogu, to bash globuje nazwy plików i używa ich jako argumentu. Możesz umieścić podwójne cudzysłowy, aby upewnić się, że dosłowna wartość jest przekazywana do polecenia, a nie do plików, które globuje.