2

我从这里找到了 SQL 转储任务http://bakery.cakephp.org/articles/carcus88/2011/04/08/sql_dump_task_for_shells

我在外壳中使用。我已经声明了

$tasks = array('SqlDump')

而且,我把这些代码放在 main() 的最后一行

pr($this->SqlDump->dump_array());

但是没有sql打印出来。如果有人知道如何使用,请告诉我。

4

1 回答 1

1

shell 通常会限制输出的大小(如果打印输出过多,可能会切断其中的一部分)。因此我会选择日志解决方案。

检查我的组件方法: https ://github.com/dereuromark/tools/blob/2.0/Controller/Component/CommonComponent.php#L601

对于 shell 环境,它可能是可重写的。基本上获取sql日志并将其写入文件:

$log = $object->getDataSource()->getLog(false, false);
CakeLog::write('sql', $log);

当然你也可以在屏幕上打印出来。

于 2012-06-08T10:39:02.063 回答