Como excluir tabelas de exportações MySQL usando mysqldump

Conteúdo

Logotipo do MySQL

Ao configurar um novo ambiente de teste para ajudar o desenvolvimento a criar um pouco menos de bugs, Eu estava procurando como transferir o banco de dados sem restaurar um monte de tabelas de arquivo que realmente não precisávamos no controle de qualidade.

Logicamente, teríamos movido essas tabelas de arquivos para um banco de dados de arquivos separado, mas isso daria muito trabalho e simplesmente não tínhamos vontade. Mmm bolsos quentes.

Depois de olhar nosso banco de dados, percebemos que aproximadamente o 90% de espaço eram dados que realmente não precisávamos em um ambiente de teste, y la mayoría de esos datos estaban en un par de tablas.

A resposta, de qualquer forma, es simplemente utilizar mysqldump con el --ignore-table opção. La única cosa complicada que debe prestar atención es que debe utilizar un dbname.tablename sintaxe, no puede simplemente poner el nombre de la tabla. Por que? /encogimiento de hombros

mysqldump -uUser -pPass -hHost --ignore-table=dbname.tablename dbname > db.bak

Si desea excluir varias tablas, puede utilizar el mismo argumento más de una vez en la línea de comando, Então:

mysqldump -uUser -pPass -hHost --ignore-table = dbname.table1 --ignore-table = dbname.table2 dbname > db.bak

Eu acho que você poderia simplesmente colocar as exclusões com espaços como você faz quando especifica apenas determinadas tabelas para exportar em primeiro lugar. Mas não, isso seria muito consistente.

Para importar o arquivo exportado de volta para outra máquina, Eu usaria algo assim para executar todos os comandos e inserções no arquivo:

mysql -uUser -pPass -hHost databasename < db.bak
Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.