2012-04-07 5 views
1

Чтобы экспортировать данные из определенной таблицы тузды в XML я использую следующую команду:MySQL: экспорт таблицы в XML без конкретного столбца

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

и она работает просто отлично.
Моя проблема заключается в том, что он экспортирует все столбцы из таблицы, и я не хочу этого. Мне нужен вывод xml для модульного тестирования, поэтому, имея столбец «created_at» в выходе, все мои тесты потерпят неудачу.

Итак, мой вопрос: если у меня есть таблица mysql, называемая «Таблица», с столбцами «col_1, created, col_2», как я могу пометить «созданный» как столбец, который НЕ будет отображаться в полученном XML-файле через команду mysqldump?

ОБНОВЛЕНИЕ: Я не могу ответить на мой вопрос сейчас, я сделаю это позже. Мне нужно было это для PHPUnit, но вместо фильтрации вывода mysqldump я могу фильтровать DataSet непосредственно в PHPUnit.

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

будет делать то, что мне нужно.

ответ

0

Вы можете контролировать, какие записи сбрасывать, добавив в команду mysqldump WHERE (см. http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_where).

+0

это действительно хорошо! мне нужно, однако, контролировать столбцы – mkk

+0

Я неправильно понял - спасибо за разъяснение. Я бы сбросил столбец после импорта файла дампа: alter table drop column created_at. Затем запустите свои тесты. –