5

Ich benutze Apartment gem in Rails 4, um die Mandantenfähigkeit in Postgres 9.3.3 auf Heroku zu unterstützen.Heroku + Apartment PG :: Fehler: FEHLER: Funktion pg_stat_statements_reset() existiert nicht

Es ist ein Fehler aufgetreten, wenn Apartment Gem einen neuen Mandanten erstellt.

Tiefe Untersuchung ergab, dass ein Schema erstellt wurde, aber keine Tabellen darin.

Heroku protokolliert einen Fehler zeigte:

PG::Error: ERROR: function pg_stat_statements_reset() does not exist 

Antwort

11

Wenn ein neues Schema erstellt wird Postgres versucht, Statistiken zurücksetzen, indem Sie die Funktion pg_stat_statements_reset Ausführung()

Standardmäßig ist diese Funktion nur sein ausgeführt von Superusern (from original doc).

Heroku gibt Ihnen keine Superuser-Privilegien. Sie müssen also die Erweiterung pg_stat_statements deaktivieren.

Lösung 1 - Schnell-Hot-Fix direkt in DB

SQL-Anweisung in Schema öffentlichen Execute

DROP EXTENSION pg_stat_statements; 

Lösung 2 - über Migration

1) Überprüfen Sie die Datei db/schema.rb. Wahrscheinlich enthält sie eine Zeile

enable_extension "pg_stat_statements" 

2) Erstellen Sie eine Migrationsdatei

rails g migration DropExtensionPgStatStatements 

3) definieren self.up Methode

def self.up 
    disable_extension "pg_stat_statements" 
end 

4) gelten die Migration

rake db:migrate 

5) Jetzt die Datei db/schema.rb sollte nicht diese Linie

6) enthalten, um Heroku

rake deploy:production:migrations 

In Bezug auf die Rake Aufgabe sehen deploy.rake

+0

Gosh Änderungen durch (Schema und Migration-Dateien) und bereitstellen, gespeichert Sie meine Arsch! DANKE! – typeoneerror