POSTGRESQL comandos Basicos

10-11-2019

creawww.com

POSTGRESQL

Command to start PostgreSQL server

  sudo systemctl start postgresql
  sudo systemctl stop postgresql
  sudo systemctl restart postgresql
  sudo systemctl status postgresql

postgres comandos basicos

Connectar con el servidor

sudo  su - postgres

conectar a la consola

psql

list databases:

postgres=# \l

cambiar de base de datos en uso:

  postgres=# \c ocdp

mostrar tablas

  postgres=# \dt

crear base de datos

postgres=# create database foo;

borrar base de datos

postgres=# drop database foo;

Salir del termina de DB

postgres=# \q

listar tablas de la db en actual

postgres=# \dt    

listar campos de la tabla

    \d+ name_table

Borrar dos tablas

DROP TABLE films, distributors;

ejecutar instrucciones como root

crear la base de Datos de nuevo

sudo -u postgres bash -c "psql -c \"CREATE DATABASE bd_ong_es OWNER ubd_ong_es;\""

Tamaños de los elementos de la base de datos

Tamaño de la base de datos

SELECT pg_size_pretty( pg_database_size('dbname') );

Tamaño de la tabla.

pg_size_pretty( pg_total_relation_size('tablename') );

instalar extensiones en POSTGRESQL

comprobar las extensiones instaladas

SELECT * FROM pg_available_extensions ORDER BY name;    

como sudo

sudo -u postgres bash -c "psql -c \"SELECT * FROM pg_available_extensions ORDER BY name;\""

instalar una extension en nuestra base de datos

borrar y crear vacia una base de datos

sudo systemctl restart postgresql

sudo -u postgres bash -c "psql" << EOF
DROP DATABASE bd_md_creaw;
CREATE DATABASE bd_md_creaw OWNER ubd_md_creaw;
\c bd_md_creaw;
CREATE EXTENSION IF NOT EXISTS "unaccent";
\q
EOF

NOTAS BACKUPS AND RESTORE

best practice: linux

nano ~/.pgpass
:5432::username:password
chmod 0600 ~/.pgpass

best practice: windows

edit %APPDATA%\postgresql\pgpass.conf
:5432::username:password

linux

PGPASSWORD="password" pg_dump --no-owner -h host -p port -U username database > file.sql

windows

PGPASSWORD=password&& pg_dump --no-owner -h host -p port -U username database > file.sql

alternative

pg_dump --no-owner --dbname=postgresql://username:password@host:port/database > file.sql

restore

psql --set ONERRORSTOP=on -U postgres database < file.sql

backup exluding table

pg_dump --no-owner -h 127.0.0.1 -p 5432 -U username --exclude-table=foo database > tmp.sql

backup including table

pg_dump --no-owner -h 127.0.0.1 -p 5432 -U username --table=foo database > tmp.sql

backup and restore

PGPASSWORD=password && pg_dump --no-owner -h 127.0.0.1 -p 5432 -U username database > tmp.sql

psql -U postgres -d database -c "drop schema public cascade; create schema public;"

psql --set ONERRORSTOP=on -U postgres -d database -1 -f tmp.sql
rm tmp.sql