Infelizmente mysqldump requer que os nomes das tabelas sejam totalmente qualificados para que você não possa especificar um parâmetro como um padrão regex.
Você pode, no entanto, usar um script para gerar seu mysqldump fazendo com que ele se conecte ao information_schema e liste todas as tabelas usando algo como:
SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
E, em seguida, gerar
--ignore-table
parâmetros para todos os nomes de tabela que correspondem ao regex de ^test
. Para despejar apenas o esquema e nenhum dado, você pode usar
--no-data=true
como parâmetro. Se você quiser obter tudo para todas as tabelas que não são de teste, mas apenas o esquema para outra tabela, você precisará usar dois comandos mysqldump separados (um para a tabela de ignorar para todas as tabelas de teste mais o esquema apenas um e outro para apenas o esquema da tabela somente de esquema) com o segundo anexando ao arquivo de saída usando o
>>
anexar
operador . Portanto, seu script resultante pode gerar 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