PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak wykonać kopię zapasową funkcji tylko w Postgresie

użyj pg_getfunctiondef; zobacz funkcje informacji o systemie. pg_getfunctiondef został dodany w PostgreSQL 8.4.

SELECT pg_get_functiondef('proc_name'::regproc);

Aby zrzucić wszystkie funkcje w schemacie, możesz wysłać zapytanie do tabel systemowych w pg_catalog; powiedz, czy chcesz wszystko 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';

trywialne jest zmienić powyższe, aby powiedzieć "ze wszystkich schematów z wyjątkiem tych zaczynających się od pg_ zamiast tego, jeśli tego chcesz.

W psql możesz zrzucić to do pliku za pomocą:

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

Aby uruchomić wyjście w innym DB, użyj czegoś takiego:

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

Jeśli jednak replikujesz funkcje między takimi bazami danych, rozważ przechowywanie autoratywnej kopii definicji funkcji jako skryptu SQL w systemie kontroli wersji, takim jak svn lub git, najlepiej spakowanym jako rozszerzenie PostgreSQL. Zobacz rozszerzenia opakowań.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodawanie klucza obcego do modelu rails

  2. Różne typy stref czasowych w obiekcie DateTime

  3. gem install pg nie może powiązać z libpq

  4. Jak Atan() działa w PostgreSQL

  5. Grupuj wyniki zapytań według miesiąca i roku w postgresql