Bohužel mysqldump vyžaduje, aby názvy tabulek byly plně kvalifikované, takže nemůžete zadat parametr jako vzor regulárního výrazu.
Můžete však použít skript ke generování vašeho mysqldump tak, že se připojí k information_schema a vypíše všechny tabulky pomocí něčeho jako:
SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
A pak nechat vygenerovat --ignore-table
parametry pro všechny názvy tabulek, které odpovídají regulárnímu výrazu ^test
.
Chcete-li vypsat pouze schéma a žádná data, můžete použít --no-data=true
jako parametr.
Pokud chcete získat vše pro všechny netestovací tabulky, ale pouze schéma pro jinou tabulku, budete muset použít dva samostatné příkazy mysqldump (jeden pro ignorovanou tabulku pro všechny testovací tabulky plus schéma pouze pro jednu a další pouze pro schéma tabulky pouze schématu), přičemž druhé se připojí k výstupnímu souboru pomocí >>
připojit
provozovatel .
Takže váš výsledný skript může vygenerovat něco jako:
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