1

特定の mysql テーブルから xml にデータをエクスポートするには、次のコマンドを使用します。

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

そしてそれはうまく動作します。
私の問題は、テーブルからすべての列をエクスポートすることであり、これは望ましくありません。単体テストには xml 出力が必要なので、出力に「created_at」という列があると、すべてのテストが失敗します。

mysqldumpしたがって、私の質問は次のとおりです。「テーブル」という名前の mysql テーブルがあり、列が「col_1、created、col_2」であると仮定すると、コマンドを介して取得した出力 xml ファイルに表示されない列として「created」をマークするにはどうすればよいですか?

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

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

私が必要とすることをします。

4

1 に答える 1

0

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

于 2012-04-11T14:04:32.697 に答える