Bref:cli - 从 1.7 升级到 2.1 后,命令输出数据两次

问题描述 投票:0回答:1

我正在将 bref/bref 库从 1.7 更新到 2.1,我发现 CLI 工具的使用方式在版本之间发生了变化。这是我在 1.7 下的 bref 命令。它调用 symfony 命令并同时对多个数据库进行 SQL 查询:

vendor/bin/bref cli my-lambda-product-console --region us-east-1 --product:foreach -o csv "从 mytable 中选择 COUNT(id)" > mytable-us.csv

这通常会输出数据库名称和查询计数的 CSV:

START 
SQL to execute: SELECT COUNT(id) FROM mytable 
Running ConnectAll.
dbname1,3 
dbname2,4 
dbname3,1 
dbname4,1 
dbname5,2
All done. 
END Duration: 1252.94 ms Memory Used: 185 MB

升级bref/bref后,看来新的命令应该是这样的。这可行,但输出现在在顶部包含一个大的 JSON 字符串,它似乎只是输出数据的副本。

新命令:

无服务器 bref:cli --region=us-east-1 --stage=生产 --function=console --args="生产:foreach '从 mytable 中选择 COUNT(id)'" > mytable-us.out

输出:

{
  "exitCode": 0,
  "output": "SQL to execute: SELECT COUNT(id) FROM mytable\nRunning
 ConnectAll.\dbname1,3\dbname2,4\dbname3,1\dbname4,1\dbname5,2\nAll
 done.\n" 
}
START 
SQL to execute: SELECT COUNT(id) FROM mytable 
Running ConnectAll.
dbname1,3 
dbname2,4 
dbname3,1 
dbname4,1 
dbname5,2
All done. 
END Duration: 1252.94 ms Memory Used: 185 MB

如您所见,JSON 字符串的内容与我们期望的输出相同。有谁知道是什么导致了第一个 JSON 输出块。在 bref 1.7 上不会发生这种情况。我认为无服务器可能是罪魁祸首,但我一直在努力在这两个文档中找到任何线索。

serverless bref
1个回答
0
投票

我注释掉了

中的2行
vendor/bref/bref/src/ConsoleRuntime/Main.php

避免运行 bref:cli 命令时出现重复输出 更改线路:

return [
    // 'exitCode' => $exitCode, // will always be 0
    // 'output' => $process->getOutput(),
];

它解决了视觉问题,到目前为止没有副作用

© www.soinside.com 2019 - 2024. All rights reserved.