2012-04-07 2 views
1

私は次のコマンドを使用XMLに特定のMySQLのテーブルからデータをエクスポートするには:のmysql:コンクリートの柱なしでXMLにテーブルをエクスポートする

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

をし、それだけで正常に動作します。
私の問題は、それがテーブルからすべての列をエクスポートし、私はこれが欲しくないということです。私は単体テストのためにxml出力が必要なので、出力に "created_at"という列を付けるとすべてのテストが失敗します。

私の質問は、 "テーブル"と呼ばれる "col_1、created、col_2"というmysqlテーブルがあると仮定して、取得された出力xmlファイルには表示されない列として "created" mysqldumpコマンドを介して?

更新:今質問に答えることができません。後でやります。私はPHPUnitに必要でしたが、実際にはmysqldumpの出力をフィルタリングする代わりに、PHPUnitでDataSetを直接フィルタリングできます。

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

私は必要なものを行います。

答えて

0

WHERE句をmysqldumpコマンドに追加することで、ダンプするレコードを制御できます(http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_where参照)。

+0

これは本当に素晴らしいです!しかし、私が必要とするものは、列を制御することです – mkk

+0

私は誤解しました - 明確化のためにありがとう。私は、ダンプファイルをインポートした後に列を削除します:alter table drop column created_at。次に、テストを実行します。 –

関連する問題