Beim Einrichten einer neuen Testumgebung, um der Entwicklung zu helfen, etwas weniger Fehler zu machen, Ich habe nach einer Möglichkeit gesucht, die Datenbank zu übertragen, ohne eine Reihe von Archivtabellen wiederherzustellen, die wir in der QA nicht wirklich brauchten.
Logisch, wir hätten diese Dateitabellen in eine separate Dateidatenbank verschoben, aber das wäre viel arbeit und wir hatten einfach keine lust. Mmm heiße Taschen.
Nach einem Blick in unsere Datenbank, wir haben festgestellt, dass ungefähr die 90% Platz waren Daten, die wir in einer Testumgebung wirklich nicht brauchten, y la mayoría de esos datos estaban en un par de tablas.
Die Antwort, auf jeden Fall, es simplemente utilizar mysqldump con el --ignore-table
Möglichkeit. La única cosa complicada que debe prestar atención es que debe utilizar un dbname.tablename
Syntax, no puede simplemente poner el nombre de la tabla. Wieso den? /encogimiento de hombros
mysqldump -uUser -pPass -hHost --ignore-table=dbname.tablename dbname > db.bak
Si desea excluir varias tablas, puede utilizar el mismo argumento más de una vez en la línea de comando, So:
mysqldump -uUser -pPass -hHost --ignore-table=dbname.table1 --ignore-table=dbname.table2 dbname > db.bak
Ich denke, Sie könnten die Ausschlüsse einfach mit Leerzeichen setzen, wie Sie es tun, wenn Sie zuerst nur bestimmte Tabellen zum Exportieren angeben. Aber nein, das wäre zu konsequent.
So importieren Sie diese exportierte Datei wieder auf einen anderen Computer, Ich würde so etwas verwenden, um alle Befehle und Einfügungen in der Datei auszuführen:
mysql -uUser -pPass -hHost-Datenbankname < db.bak