Niestety mysqldump wymaga, aby nazwy tabel były w pełni kwalifikowane, więc nie można określić parametru jako wzorca wyrażenia regularnego.
Możesz jednak użyć skryptu do wygenerowania mysqldump, łącząc go z informacją_schema i wyświetlając wszystkie tabele, używając czegoś takiego:
SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
A następnie wygenerowanie --ignore-table
parametry dla wszystkich nazw tabel, które pasują do wyrażenia regularnego ^test
.
Aby zrzucić tylko schemat i żadnych danych, możesz użyć --no-data=true
jako parametr.
Jeśli chcesz uzyskaćwszystko dla wszystkich tabel nietestowych, ale tylko schemat dla innej tabeli, musisz użyćdwóch oddzielnych poleceń mysqldump (jednej dla tabeli ignorowania dla wszystkich tabel testowych oraz schematu tylko dla jednej i drugiej tylko dla schemat tabeli tylko schemat) z drugą dołączaną do pliku wyjściowego za pomocą >>
dołącz
operator .
Skrypt wynikowy może więc wygenerować coś takiego:
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