J'ai un fichier de configuration 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')
);
Et j'ai un fichier 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
Mais quand je l'exécute, le fichier de sauvegarde contient toujours des données dans des tables de cache. Qu'est-ce que je fais mal?
Et la deuxième question est - Si je mets cela dans crontab, dois-je mettre le fichier de configuration ailleurs?
J'utilise Drush version 8.
Désolé, je ne peux pas vous aider beaucoup avec votre première question ...
Votre 2e question demandait:
Et la deuxième question est - Si je mets cela dans crontab, dois-je mettre le fichier de configuration ailleurs?
le site de documentation de drush est lié au fichier d'exemple drushrc.php qui indique où vous pouvez placer le fichier rc:
https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.drushrc.php
Renommez ce fichier en drushrc.php et copiez-le éventuellement à l'un des emplacements répertoriés ci-dessous par ordre de priorité:
- Dossier du site Drupal (par exemple sites/{default | example.com} /drushrc.php).
- Drupal/drush et sites/all/drush, ou le dossier/drush dans le répertoire au-dessus de la racine Drupal.
- Dans n'importe quel emplacement, comme spécifié par l'option --config (-c).
- Dossier .drush de l'utilisateur (c'est-à-dire ~/.drush/drushrc.php).
- Dossier de configuration à l'échelle du système (par exemple /etc/drush/drushrc.php).
- Dossier d'installation Drush.
Pour Cron, la documentation recommande que Drush soit configuré pour fonctionner comme le même utilisateur qui exécute votre serveur Web. Cela étant dit, je vous recommande de placer votre fichier rc à l'emplacement (5), un dossier de configuration à l'échelle du système. Oui, les fichiers rc Drush plus localisés devront alors remplacer votre fichier de configuration à l'échelle du système si nécessaire (eh bien).
Vider toutes les tables sauf la table cache
et les tables commençant par cache_
.
drush sql-dump --skip-tables-list=cache,cache_* > dumpfile.sql
Structure de la base de données uniquement. Pas de données du tout.
drush sql-dump --extra=--no-data > dumpfile.sql
Données uniquement. Aucune donnée de cache et aucune structure de cache.
drush sql-dump --skip-tables-list=cache,cache_* --data-only > dumpfile.sql
Pas de données de cache mais vidage dans leurs structures.
drush sql-dump --structure-tables-list=cache,cache_* > dumpfile.sql
Pour une raison quelconque, cache_ * n'a pas fonctionné pour moi avec drush 9+ tant que je n'ai pas omis le trait de soulignement. Cependant, cela peut être spécifique à mon (serveur) bash/terminal. Ce qui a fonctionné pour moi:
drush sql-dump --skip-tables-list=cache*
et vous pouvez toujours ajouter le --verbose
pour voir le vidage mysql réel et son paramètre --ignore.