risposta

11

Quando un nuovo schema viene creato Postgres sta cercando di ripristinare le statistiche eseguendo la funzione pg_stat_statements_reset()

Per impostazione predefinita, questa funzione può essere solo eseguito da superuser (from original doc).

Heroku non offre i privilegi di superutente. Quindi è necessario disabilitare l'estensione pg_stat_statements.

Soluzione 1 - soluzione rapida calda direttamente nel DB

Esegui istruzione SQL in schema pubblico

DROP EXTENSION pg_stat_statements; 

Soluzione 2 - via migrazione

1) Controllare il file db/schema.rb. Molto probabilmente contiene una linea

enable_extension "pg_stat_statements" 

2) Creare un file di migrazione

rails g migration DropExtensionPgStatStatements 

3) definire il metodo self.up

def self.up 
    disable_extension "pg_stat_statements" 
end 

4) applicare la migrazione

rake db:migrate 

5) Ora il file db/schema.rb non dovrebbero contenere quella linea

6) Impegnarsi modifiche (file di schema e migrazione) e distribuire a Heroku

rake deploy:production:migrations 

Per quanto riguarda il compito rake vedere deploy.rake

+0

Accidenti, mi hai salvato la culo! GRAZIE! – typeoneerror

Problemi correlati