Cómo excluir tablas de exportaciones de MySQL usando mysqldump

Contenidos

Logotipo de MySQL

Mientras configuraba un nuevo entorno de prueba para ayudar al desarrollo a hacer un poco menos de errores, estaba buscando cómo transferir la base de datos sin restaurar un montón de tablas de archivo que verdaderamente no necesitábamos en QA.

Lógicamente, habríamos movido esas tablas de archivo a una base de datos de archivo separada, pero eso sería mucho trabajo y simplemente no hemos tenido ganas. Mmm bolsillos calientes.

Después de mirar nuestra base de datos, nos dimos cuenta de que aproximadamente el 90% del espacio eran datos que verdaderamente no necesitábamos en un entorno de prueba, y la mayoría de esos datos estaban en un par de tablas.

La respuesta, de todos modos, es simplemente utilizar mysqldump con el --ignore-table opción. La única cosa complicada que debe prestar atención es que debe utilizar un dbname.tablename sintaxis, no puede simplemente poner el nombre de la tabla. ¿Por qué? /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, así:

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

Pensaría que podría simplemente poner las exclusiones con espacios como lo hace cuando especifica solo tablas particulares para exportar en primer lugar. Pero no, eso sería demasiado consistente.

Para importar ese archivo exportado nuevamente en otra máquina, usaría algo como esto para ejecutar todos los comandos e inserciones en el archivo:

mysql -uUser -pPass -hHost databasename < db.bak
Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.