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