Sayangnya mysqldump membutuhkan nama tabel yang sepenuhnya memenuhi syarat sehingga Anda tidak dapat menentukan parameter sebagai pola ekspresi reguler.
Namun, Anda dapat menggunakan skrip untuk menghasilkan mysqldump Anda dengan menghubungkannya ke information_schema dan membuat daftar semua tabel menggunakan sesuatu seperti:
SELECT TABLE_NAME, TABLE_SCHEMA
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('INFORMATION_SCHEMA', 'mysql', 'PERFORMANCE_SCHEMA');
Dan kemudian membuatnya menghasilkan --ignore-table
parameter untuk semua nama tabel yang cocok dengan ekspresi reguler ^test
.
Untuk membuang hanya skema dan tanpa data, Anda dapat menggunakan --no-data=true
sebagai parameter.
Jika Anda ingin mendapatkan semuanya untuk semua tabel non-tes tetapi hanya skema untuk tabel lain maka Anda perlu menggunakan dua perintah mysqldump terpisah (satu untuk tabel abaikan untuk semua tabel pengujian ditambah skema hanya satu dan satu lagi untuk hanya skema tabel skema saja) dengan yang kedua ditambahkan ke file output dengan menggunakan >>
tambahkan
operator .
Jadi skrip yang Anda hasilkan mungkin menghasilkan sesuatu seperti:
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