Tyvärr mysqldump kräver att tabellnamn är helt kvalificerade så att du inte kan ange en parameter som ett regexmönster.
Du kan dock använda ett skript för att generera din mysqldump genom att låta den ansluta till informationsschemat och lista alla tabeller med något som:
SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
Och sedan få det att generera --ignore-table
parametrar för alla tabellnamn som matchar regexet för ^test
.
För att bara dumpa schemat och inga data kan du använda --no-data=true
som en parameter.
Om du vill få allt för alla icke-testtabeller men bara schemat för en annan tabell måste du använda två separata mysqldump-kommandon (en för ignore-tabellen för alla testtabeller plus schemat endast en och en annan för endast schemat för endast schematabellen) med det andra som läggs till utdatafilen genom att använda >>
lägg till
operatör .
Så ditt resulterande skript kan generera något 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