sql >> Base de Datos >  >> RDS >> Mysql

Saltar tablas en mysqldump según un patrón

Lamentablemente mysqldump requiere que los nombres de las tablas estén completamente calificados para que no pueda especificar un parámetro como un patrón de expresión regular.

Sin embargo, podría usar un script para generar su mysqldump haciendo que se conecte al esquema de información y enumere todas las tablas usando algo como:

SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');

Y luego hacer que genere --ignore-table parámetros para todos los nombres de tablas que coincidan con la expresión regular de ^test .

Para volcar solo el esquema y ningún dato, puede usar --no-data=true como parámetro.

Si desea obtener todo para todas las tablas que no son de prueba, pero solo el esquema para otra tabla, necesitará usar dos comandos mysqldump separados (uno para la tabla de ignorar para todas las tablas de prueba más el esquema solo uno y otro para solo el esquema de la tabla de solo esquema) con el segundo agregado al archivo de salida usando el >> añadir operador .

Entonces, su secuencia de comandos resultante podría generar algo como:

mysqldump -u root -ptoor databaseName --ignore-table=testTable1 --ignore-table=testTable2 --ignore-table=testTable3  --ignore-table=schemaOnlyTable > mysqldump.sql

mysqldump -u root -ptoor databaseName schemaOnlyTable --no-data=true >> mysqldump.sql