sql >> Databáze >  >> RDS >> PostgreSQL

Jak zálohovat funkce pouze v Postgresu

použijte pg_getfunctiondef; viz systémové informační funkce. pg_getfunctiondef byl přidán v PostgreSQL 8.4.

SELECT pg_get_functiondef('proc_name'::regproc);

Chcete-li vypsat všechny funkce ve schématu, můžete se dotazovat na systémové tabulky v pg_catalog; řekněme, že chcete vše od public :

SELECT pg_get_functiondef(f.oid)
FROM pg_catalog.pg_proc f
INNER JOIN pg_catalog.pg_namespace n ON (f.pronamespace = n.oid)
WHERE n.nspname = 'public';

je triviální změnit výše uvedené tak, aby říkalo "ze všech schémat kromě těch začínajících pg_ " místo toho, pokud to chcete.

V psql můžete to uložit do souboru pomocí:

psql -At dbname > /path/to/output/file.sql <<"__END__"
... the above SQL ...
__END__

Chcete-li spustit výstup v jiné databázi, použijte něco jako:

psql -1 -v ON_ERROR_STOP -f /path/to/output/file.sql target_db_name

Pokud však replikujete funkce mezi databázemi, jako je tato, zvažte uložení autorizované kopie definic funkcí jako SQL skript v systému řízení revizí, jako je svn nebo git, nejlépe zabalené jako rozšíření PostgreSQL. Viz rozšíření balení.



  1. Vzorce pro výpočet zeměpisné blízkosti

  2. Pomocí kroku Unpivot Step vytvořte tabulkovou tabulku z křížové tabulky

  3. 10 efektivních způsobů, jak být v práci produktivnější

  4. Chyba MySQL::'Přístup odepřen pro uživatele 'root'@'localhost'