2016-06-04 7 views
1

Ich habe eine Postgres-Funktion mit \ ef bearbeitet und den RETURN-Typ geändert. Habe nicht gemerkt, dass es kein Weg war, es zu retten.Wiederherstellen von Änderungen an der Postgres-Funktion

mattswheels=# \ef fib 
mattswheels-# \g 
ERROR: cannot change return type of existing function 
HINT: Use DROP FUNCTION fib(numeric) first. 

Ich habe eine Menge Code geschrieben - gibt es eine Möglichkeit, sie wiederherzustellen? Ich weiß, dass vim es irgendwo in einem/tmp-Ordner gespeichert hat, aber ich bin mir nicht sicher über den Pfad.

Antwort

1

Sie können den fehlerhaften Funktionstext möglicherweise aus den PostgreSQL-Protokollen wiederherstellen, da standardmäßig alle Syntaxfehler (einschließlich Fehler beim Kompilieren von Funktionen) protokolliert werden. Die Protokolle befinden sich in $ PGDATA/pg_log. Versuchen Sie:

less `ls -t /var/lib/pgsql/*/data/pg_log/postgresql-*.log | head -n 1`