2012-04-07 9 views
1

in XML exportiert Zum Exportieren von Daten aus einer bestimmten MySQL-Tabelle in XML Ich verwende den folgenden Befehl ein:mysql: Tabelle ohne konkrete Spalte

mysqldump --xml -t -u [username] --password=[password] [database] [table] > /path/to/file.xml 

und es funktioniert gut.
Mein Problem ist, dass es alle Spalten aus der Tabelle exportiert und ich will das nicht. Ich benötige die XML-Ausgabe für Komponententests, so dass eine Spalte "created_at" in der Ausgabe alle meine Tests fehlschlagen lassen würde.

Also meine Frage ist: vorausgesetzt, ich habe eine mysql Tabelle namens "Tabelle", mit Spalten "col_1, erstellt, col_2", wie kann ich "erstellt" als Spalte, die nicht in der Ausgabe XML-Datei erhalten angezeigt werden über mysqldump Befehl?

UPDATE: Ich kann meine Frage jetzt nicht beantworten, ich werde es später tun. Ich brauchte es für PHPUnit, aber anstatt die mysqldump-Ausgabe zu filtern, kann ich DataSet direkt in PHPUnit filtern.

$filterDataSet = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($notFilteredDataSet); 
    $filterDataSet->setExcludeColumnsForTable('Table', array('created_at')); 

werde tun, was ich brauche.

Antwort

0

Sie können steuern, welche Datensätze ausgegeben werden, indem Sie eine WHERE-Klausel zu Ihrem Befehl mysqldump hinzufügen (siehe http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_where).

+0

das ist in der Tat schön! Was ich aber brauche, ist die Kontrolle der Spalten – mkk

+0

Ich missverstanden - danke für die Klärung. Ich würde die Spalte nach dem Import der Dump-Datei fallen lassen: alter table drop column created_at. Dann führe deine Tests durch. –

Verwandte Themen