如何在shell中转储sql

时间:2012-06-08 09:14:58

标签: php postgresql cakephp

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

我在shell中使用。 我已经宣布了

  

$ tasks = array('SqlDump')

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

  

PR($这 - > SqlDump-> dump_array());

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

1 个答案:

答案 0 :(得分:1)

外壳通常受限于输出的大小(如果打印输出太多,可能会切掉一些外壳)。 因此我会选择日志解决方案。

检查我的组件方法: 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);

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