Leider mysqldump erfordert, dass Tabellennamen vollständig qualifiziert sind, sodass Sie einen Parameter nicht als Regex-Muster angeben können.
Sie könnten jedoch ein Skript verwenden, um Ihren mysqldump zu generieren, indem Sie es mit dem information_schema verbinden und alle Tabellen mit etwas wie:
auflisten lassenSELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
Und dann generiert es --ignore-table
Parameter für alle Tabellennamen, die mit dem Regex von ^test
übereinstimmen .
Um nur das Schema und keine Daten auszugeben, können Sie verwenden --no-data=true
als Parameter.
Wenn Sie alles für alle Nicht-Testtabellen erhalten möchten, aber nur das Schema für eine andere Tabelle, müssen Sie zwei separate mysqldump-Befehle verwenden (einen für die Ignorieren-Tabelle für alle Testtabellen plus das Schema nur für eine und einen anderen für nur das Schema der Nur-Schema-Tabelle), wobei die zweite mithilfe von >>
an die Ausgabedatei angehängt wird anhängen
Operator .
Ihr resultierendes Skript könnte also Folgendes generieren:
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