Como ignorar tabelas específicas com drush sql-dump?
Pergunta
Eu tenho um drush arquivo de configuração ~/.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')
);
E eu tenho um script bash arquivo:
/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
Mas quando eu executar o ficheiro de cópia de segurança ainda tem os dados no cache de tabelas.O que estou fazendo de errado?
E a segunda pergunta é Se eu colocar isso no crontab preciso colocar o arquivo de configuração em algum outro lugar?
Eu uso o Drush versão 8.
Solução
Desculpe, não posso ajudar muito com a sua primeira pergunta ...
O seu 2º pergunta:
E a segunda pergunta é Se eu colocar isso no crontab preciso colocar o arquivo de configuração em algum outro lugar?
O drush documentação links de site para drushrc.php exemplo de arquivo que diz onde você pode colocar o arquivo rc:
https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.drushrc.php
Renomeie este arquivo para drushrc.php e, opcionalmente, copie-o para um dos lugares listados abaixo em ordem de precedência:
- Site Drupal pasta (por exemplo,sites/{default|exemplo.com}/drushrc.php).
- Drupal /drush e sites/all/drush pastas, ou o arquivo /pasta drush no diretório acima do Drupal raiz.
- Em qualquer localização, como especificado pela opção --config (-c) opção.
- Do usuário .drush pasta (por exemplo,~/.drush/drushrc.php).
- Todo o sistema de configuração de pasta (por exemplo,/etc/drush/drushrc.php).
- Drush pasta de instalação.
Para Cron a documentação recomenda que Drush ser configurado para executar como o mesmo usuário que executa o servidor web.O que está sendo dito, eu recomendo que você coloque seu arquivo rc no local (5), um sistema de configuração de toda a pasta.Sim, mais localizadas, Drush arquivos rc, em seguida, será necessário substituir o seu sistema-amplo arquivo de configuração conforme necessário (bem).
Outras dicas
Despejo de todas as tabelas, exceto cache
tabela e tabelas que começam com cache_
.
drush sql-dump --skip-tables-list=cache,cache_* > dumpfile.sql
Estrutura de banco de dados apenas.Dados em todos os.
drush sql-dump --extra=--no-data > dumpfile.sql
Somente dados.Sem cache de dados e sem cache estrutura.
drush sql-dump --skip-tables-list=cache,cache_* --data-only > dumpfile.sql
Nenhum cache de dados, mas de despejo em suas estruturas.
drush sql-dump --structure-tables-list=cache,cache_* > dumpfile.sql
Por algum motivo cache_* não funcionou para mim com o drush 9+ até que eu omitido o carácter de sublinhado.No entanto, isso pode ser específico para o meu (servidor) bash/terminal.O que funcionou para mim:
drush sql-dump --skip-tables-list=cache*
e você pode sempre adicionar o --verbose
para ver o real mysql dump e é --ignore o parâmetro.