我正在编写一个测试框架,我需要在其中捕获 MySQL 数据库状态(表结构、内容等)。
我需要这个来检查在某些操作后状态没有改变。(可能允许更改自动增量值,但我想我能够处理这个问题。)
转储最好采用人类可读的格式(最好是 SQL 代码,如 mysqldump 那样)。
我希望将我的测试框架限制为仅使用 MySQL 连接。要捕获状态,它不应调用mysqldump 或访问文件系统(如复制 *.frm 文件或执行 SELECT INTO 文件,但管道很好)。
由于这将是仅测试代码,因此我不关心性能。不过,我确实需要可靠的行为。
实现我需要的功能的最佳方式是什么?
我想我应该将我的代码基于一些现有的开源备份工具......哪个是最好看的?
更新:我没有指定我写这个的语言(不,那不是 PHP),因为我认为我不能按原样重用代码 - 我的情况相当特殊(出于实际目的,假设 MySQL C API)。代码将在 Linux 上运行。