Tengo un archivo de configuración 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')
);
Y tengo un archivo de script 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
Pero cuando lo ejecuto, el archivo de respaldo todavía tiene datos en las tablas de caché. ¿Qué estoy haciendo mal?
Y la segunda pregunta es: si pongo esto en crontab, ¿debo poner el archivo de configuración en otro lugar?
Yo uso Drush versión 8.
drushrc.php
no se está ejecutando. Pruebe una var_dump de la$options['structure-tables']
en eldrushrc.php
solo para confirmar que se está ejecutando.Respuestas:
Lo siento, no puedo ayudarte mucho con tu primera pregunta ...
Su segunda pregunta es:
El sitio de documentación de drush enlaza con el archivo de ejemplo drushrc.php que dice dónde puede colocar el archivo rc:
https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.drushrc.php
Para Cron, la documentación recomienda que Drush se configure para ejecutarse como el mismo usuario que ejecuta su servidor web. Dicho esto, le recomiendo que coloque su archivo rc en la ubicación (5), una carpeta de configuración de todo el sistema. Sí, los archivos Drush rc más localizados deberán anular el archivo de configuración de todo el sistema según sea necesario (bueno).
fuente
Volcar todas las tablas excepto la
cache
tabla y las tablas que comienzan concache_
.Estructura de base de datos solamente. No hay datos en absoluto.
Solo datos. Sin datos de caché ni estructura de caché.
Sin datos de caché, pero volcado en sus estructuras.
documentación de sql-dump
fuente
--extra=--no-data
no funcionaba para mí, pero pude hacerlo--skip-tables-list="*"
y funcionó."cache,cache_*"
para evitar que su shell coincida con los archivos llamadoscache_*
en su directorio de trabajo.Por alguna razón, cache_ * no funcionó para mí con drush 9+ hasta que omití el guión bajo. Sin embargo, esto puede ser específico para mi (servidor) bash / terminal. Lo que funcionó para mí:
y siempre puede agregar el
--verbose
para ver el volcado de mysql real y su parámetro --ignore.fuente
cache_*
coincide con algún archivo en su directorio actual, bash englobará esos nombres de archivo y lo usará como argumento. Puede poner comillas dobles a su alrededor para asegurarse de que el valor literal se pase al comando en lugar de los archivos que engloba.