Desværre mysqldump kræver, at tabelnavne er fuldt kvalificerede, så du kan ikke angive en parameter som et regex-mønster.
Du kan dog bruge et script til at generere din mysqldump ved at få det til at forbinde til informationsskemaet og liste alle tabellerne ved at bruge noget som:
SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
Og så få det til at generere --ignore-table
parametre for alle tabelnavne, der matcher regex af ^test
.
For kun at dumpe skemaet og ingen data kan du bruge --no-data=true
som en parameter.
Hvis du vil have alt for alle ikke-testtabellerne, men kun skemaet for en anden tabel, skal du bruge to separate mysqldump-kommandoer (en for ignore-tabellen for alle testtabeller plus skemaet kun én og en anden for kun skemaet for tabellen kun skema) med det andet tilføjet til outputfilen ved at bruge >>
tilføj
operatør .
Så dit resulterende script kan generere noget som:
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