За съжаление mysqldump изисква имената на таблици да са напълно квалифицирани, така че не можете да посочите параметър като шаблон на регулярни изрази.
Можете обаче да използвате скрипт за генериране на вашия mysqldump, като го накарате да се свърже с information_schema и да изброи всички таблици, използвайки нещо като:
SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
И след това да го накара да генерира --ignore-table
параметри за всички имена на таблици, които съответстват на регулярния израз на ^test
.
За да изхвърлите само схемата и никакви данни, можете да използвате --no-data=true
като параметър.
Ако искате да получите всичко за всички не тестови таблици, но само схемата за друга таблица, тогава ще трябва да използвате две отделни команди mysqldump (една за таблицата за игнориране за всички тестови таблици плюс схемата само за една и друга само за схемата на таблицата само със схемата) като втората се добавя към изходния файл с помощта на >>
добавете
оператор .
Така полученият ви скрипт може да генерира нещо като:
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