PostgreSQL és un potent sistema de bases de dades relacionals fiable, robust i d'alt rendiment.

Introducció

Si no coneixes com funciona una base de dades SQL, treballa primer les activitats de Sqlite.

Entorn de treball

Arrenca una màquina virtual Linux amb Windows Subsytem for Linux (WSL).

> connect connect-wsl postgres -new

Insta.la postgres:

sudo apt update && sudo apt install -y postgresql

Crea un contenidor postgres amb Docker:

docker run -d --name postgres --restart=always -p 5432:5432 -e POSTGRES_PASSWORD=password -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password postgres:17

psql

Obre un terminal interactiu executant un client psql:

docker exec -it postgres psql -U postgres

Amb l'ordre \l pots veure les bases de dades que té per defecte el gestor de base de dades:

$ \l
                                                List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    | ICU Locale | Locale Provider |   Access privileges   
-----------+----------+----------+------------+------------+------------+-----------------+-----------------------
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | 
 template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | =c/postgres          +
           |          |          |            |            |            |                 | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | =c/postgres          +
           |          |          |            |            |            |                 | postgres=CTc/postgres
(3 rows)

Crea una base de dades test:

postgres=# create database test;
CREATE DATABASE

Et pots connectar a la base de dades test:

postgres=# \c test 
You are now connected to database "test" as user "postgres".
test=> 

Amb \q pots acabar la sessió:

test=# \q
$

pgAdmin

PgAdmin és una aplicació web que pot administrar bases de dades locals i remotes.

Instal.la pgAdmin:

docker run -d --name pgadmin --restart=always --network host -e PGADMIN_DEFAULT_EMAIL=postgres@mail.com -e PGADMIN_DEFAULT_PASSWORD=password dpage/pgadmin4:8

Si vols pots configurar més paràmetres del contenidor pgadmin4 tal com s'explica a Container Deployment

Ja pots obrir el navegador a http://localhost.

A continuació tens un video que et mostra com configurar un servidor.

Si no has modificat el paràmetres configurats per defecte, l'usuari és postgres@mail.com i la contrasenya password.

Datagrip

Pots utilitzar DataGrip per gestionar la base de dades:

Scott

Scott és una base de dades demo.

Importa la base de dades "Scott":

wget https://gitlab.com/xtec/postgres-data/-/raw/main/scott.sql
docker cp scott.sql postgres:scoot.sql
cat scott.sql | docker exec -i postgres su postgres -c "psql"

A la pàgina web de PgAdmin selecciona la base de dades Scott i a continuació obre l’eina Query Tool.

Ja pots fer consultes a la base de dades.

En l'activitat Query - Scott tens molts exemples de consultes a la base de dades Scott.

TODO

https://stackoverflow.com/questions/24718706/backup-restore-a-dockerized-postgresql-database