2011-12-09 18 views
5

Estoy usando Ruby on Rails 3.1.1 y estoy usando la gema pg.Cómo eliminar el ruido postgresql

En mi Gemfile.lock esto es lo que tengo

pg (0.11.0) 

Mi registro está lleno de información como la que se indica a continuación. No consigo ese ruido con sqlite3. ¿Cómo puedo suprimir el ruido?

PK and serial sequence (1.6ms) SELECT attr.attname, seq.relname 
FROM pg_class seq, 
pg_attribute attr, 
pg_depend dep, 
pg_namespace name, 
pg_constraint cons 
WHERE seq.oid = dep.objid 
AND seq.relkind = 'S' 
AND attr.attrelid = dep.refobjid 
AND attr.attnum = dep.refobjsubid 
AND attr.attrelid = cons.conrelid 
AND attr.attnum = cons.conkey[1] 
AND cons.contype = 'p' 
AND dep.refobjid = '"companies_users"'::regclass 
    PK and custom sequence (0.8ms) SELECT attr.attname, 
CASE 
WHEN split_part(def.adsrc, '''', 2) ~ '.' THEN 
substr(split_part(def.adsrc, '''', 2), 
strpos(split_part(def.adsrc, '''', 2), '.')+1) 
ELSE split_part(def.adsrc, '''', 2) 
END 
FROM pg_class t 
JOIN pg_attribute attr ON (t.oid = attrelid) 
JOIN pg_attrdef def ON (adrelid = attrelid AND adnum = attnum) 
JOIN pg_constraint cons ON (conrelid = adrelid AND adnum = conkey[1]) 
WHERE t.oid = '"companies_users"'::regclass 
AND cons.contype = 'p' 
AND def.adsrc ~* 'nextval' 

Respuesta

0

creo que esta joya debe ayudar https://github.com/dolzenko/silent-postgres

El uso es muy sencillo: sólo tiene que añadir "silent-postgres" a su Gemfile.

+0

'silent-postgres' suprime' AVISO: 'líneas y similar. La pregunta es sobre una consulta generada y ejecutada por ActiveRecord, específicamente 'ActiveRecord :: ConnectionAdapters :: PostgreSQLAdapter # pk_and_sequence_for'. – willglynn

+0

Tampoco veo por qué los rieles siguen preguntando. No veo nada que cambie. – mcr

0

Aquí hay una monkeypatch añadí a config/inicializadores para silenciar sólo por esta línea de registro molesto:

if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter) 
    module ActiveRecord 
    module ConnectionAdapters 
     class PostgreSQLAdapter 
     def pk_and_sequence_for_with_silenced_logging(table) 
      log_level = ActiveRecord::Base.logger.level 
      ActiveRecord::Base.logger.level = Logger::WARN 
      pk_and_sequence_for_without_silenced_logging(table) 
     ensure 
      ActiveRecord::Base.logger.level = log_level 
     end 
     alias_method_chain(:pk_and_sequence_for, :silenced_logging) 
     end 
    end 
    end 
end 
Cuestiones relacionadas