Краткий справочник команд PostgreSQL


Подключение к БД

psql --host=127.0.0.1 \
--username=postgres --password

Создание пользователя

CREATE DATABASE dbname;
CREATE USER dbuser WITH password 'dbpassword';
GRANT ALL ON DATABASE dbname TO dbuser;

Установить права только INSERT и UPDATE для пользователя dbuser

\c dbname
GRANT USAGE ON SCHEMA dbschema TO dbuser;
GRANT INSERT,UPDATE ON ALL TABLES IN SCHEMA dbschema TO dbuser;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA dbschema TO dbuser;

Показать список пользователей

\du

или

SELECT u.usename AS "User Name" FROM pg_catalog.pg_user u;

Сменить владельца БД

ALTER DATABASE dbname OWNER TO new_onwer;

Резервное копирование

https://www.postgresql.org/docs/9.5/static/backup.html

pg_dump -c -h 127.0.0.1 -U dbuser dbname > ./dump.sql

Только структуру базы

pg_dump -c -h 127.0.0.1 -U dbuser -s dbname > ./dump.sql

Восстановление

cat dump.sql | psql -h 127.0.0.1 dbname dbuser
psql -h 127.0.0.1 dbname dbuser < dump.sql

Перенос дампа между базами и/или хостами

pg_dump -h host1 dbname | psql -h host2 dbname

Перенос структуры базы данных без переноса самих данных