Sfortunatamente mysqldump richiede che i nomi delle tabelle siano completamente qualificati, quindi non puoi specificare un parametro come modello regex.
Potresti, tuttavia, utilizzare uno script per generare il tuo mysqldump collegandolo a information_schema ed elencare tutte le tabelle usando qualcosa come:
SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
E poi generando --ignore-table
parametri per tutti i nomi di tabella che corrispondono all'espressione regolare di ^test
.
Per scaricare solo lo schema e nessun dato puoi usare --no-data=true
come parametro.
Se vuoi ottenere tutto per tutte le tabelle non di test ma solo lo schema per un'altra tabella, allora dovresti usare due comandi mysqldump separati (uno per la tabella ignore per tutte le tabelle di test più lo schema solo uno e un altro solo per lo schema della tabella solo schema) con la seconda aggiunta al file di output utilizzando il >>
append
operatore .
Quindi lo script risultante potrebbe generare qualcosa del tipo:
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