Я пишу тестовый фреймворк, в котором мне нужно захватить состояние базы данных MySQL (структура таблицы, содержимое и т. Д.).
Это необходимо для проверки того, что состояние не изменилось после определенных операций. (Значения автоинкремента могут изменяться , но я думаю, что смогу справиться с этим.)
Дамп предпочтительно должен быть в удобочитаемом формате (предпочтительно в коде SQL, как это делает mysqldump).
Я хочу ограничить мою тестовую среду только использованием соединения MySQL. Чтобы захватить состояние, он должен , а не вызывать mysqldump или обращаться к файловой системе (например, копировать файлы * .frm или делать SELECT INTO файл, хотя каналы в порядке).
Поскольку это будет только тестовый код, меня не волнует производительность. Хотя мне нужно надежное поведение.
Каков наилучший способ реализовать нужные мне функции?
Полагаю, я должен основывать свой код на некоторых из существующих инструментов резервного копирования с открытым исходным кодом ... Какой из них лучше всего посмотреть?
Обновление: Я не указываю язык, на котором пишу это (нет, это не PHP), так как я не думаю, что смогу повторно использовать код как есть & mdash; Мой случай довольно особенный (для практических целей, допустим, MySQL C API). Код будет работать в Linux.