PostgreSQL – backup

Lista wszystkich tabel w bazie

select n.nspname, c.relname from pg_class c join pg_namespace n on c.relnamespace = n.oid where c.relkind = 'r' and n.nspname <> 'information_schema' and n.nspname !~ '^pg_';
select 'TRUNCATE TABLE ' || n.nspname || '.' || c.relname || ' CASCADE;' from pg_class c join pg_namespace n on c.relnamespace = n.oid
where c.relkind = 'r' and n.nspname <> 'information_schema' and n.nspname !~ '^pg_'
and n.nspname = 'schema';

Backup całego schematu


pg_dump --schema nazwa_schematu -U user baza -h host -p port -f plik.sql

Backup pojedynczej tabeli


pg_dump --table nazwa_schematu.nazwa_tabeli -U user baza -h host -p port -f plik.sql

Wgrywanie pliku z backup’em


psql -U user baza -h host -f plik.sql

Windows:

psql.exe -h host -U user -W baza < plik.sql