【问题标题】:Rails+ postgres : Loading db structure floods stdoutRails + postgres:加载数据库结构淹没标准输出
【发布时间】:2025-12-16 13:10:01
【问题描述】:

我使用 Rails4 和 postgres 作为我的数据库——因为我使用了很多 postgres 特定的功能,我的架构以 .sql 格式存储(我不确定它是否会改变任何东西,但只是在案例……)

目前,当我运行测试时,我的控制台输出充满了以下日志:

SET
Time: 2.822 ms
CREATE EXTENSION
Time: 11.300 ms
(...)
COMMENT
CREATE TABLE
Time: 1.532 ms
(...)
INSERT 0 1
Time: 0.326 ms

我跟踪了哪个任务添加了它们,它们是在db:structure:load 任务中创建的。 有什么办法可以压制他们吗?

我将min_messages: warning 添加到我的database.yml 配置中,但不幸的是它并没有改变任何东西。

【问题讨论】:

  • min_messages 是否设置在正确的环境中?您是否尝试过更严格的设置?我认为您也可以使用PGOPTIONS 环境变量,以防db:structure:load 绕过驱动程序并直接使用psql
  • 是的,我将它添加到所有环境中。我还尝试设置PANIC 级别——没有运气。我也查了一下,这可能是因为client_min_messages是直接在structure.sql中设置的。我也尝试在那里设置SET client_min_messages = PANIC;,但没有运气。

标签: ruby-on-rails postgresql ruby-on-rails-4


【解决方案1】:

好的,我找到了——原因稍有不同。 几天前,我偶然发现了Thoughtbots’ post about improving postgres command–line experience - 有指向nice psqlrc settings 的链接,我(在外观修改后)将其应用到我的机器上。显然,最后一行 (\unset QUIET) 导致了这种情况。注释掉之后,它就像一个魅力。谢谢大家的帮助!

【讨论】: