Introducció
Arrenca una màquina virtual Linux amb Windows Subsytem for Linux (WSL).
Docker
Crea una carpeta on estaran les dades:
$ mkdir data
Crea un contenidor postgres amb Docker:
$ docker run --rm -d --name db -p 5432:5432 -v $PWD/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD postgres:16
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
Utilitzarem Composició de contenidors per desplegar PostgreSQL juntament amb PGAdmin a l'entorn local.
$ mkdir postgres && cd postgres
$ wget https://gitlab.com/xtec/data/postgres/-/raw/main/docker-compose.yml
Si vols, pots editar el fitxer docker-compose.yml
i modificar l'usuari i contrasenya:
$ nano docker-compose.yml
Si vols pots configurar més paràmetres del contenidor pgadmin4
tal com s'explica a Container Deployment
Arrenca els contenidors:
$ docker-compose up -d
Creating network "postgres_default" with the default driver
Creating volume "postgres_data" with default driver
Creating volume "postgres_admin" with default driver
Creating postgres_admin_1 ... done
Creating postgres_db_1 ... done
A partir d'ara cada cop que arrenquis la màquina virtual els contenidors arrencaran de manera automàtica.
En qualsevol moment pots comprovar l'estat dels contenidors:
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------------------
postgres_admin_1 /entrypoint.sh Up 443/tcp, 0.0.0.0:80->80/tcp,:::80->80/tcp
postgres_db_1 docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp,:::5432->5432/tcp
Ja pots obrir el navegador a http://localhost.
Si no has modificat el fitxer docker-compose.yml
l'usuari és alumne
i la contrasenya password
.
PgAdmin pot administrar bases de dades locals i remotes.
A continuació has de registrar un nou servidor al postgres que s’executa en el localhost:
Configura la connexió.
Si no has modificat el fitxer docker-compose.yml
l'usuari és postgres
i la contrasenya password
.
Scott
Entra dins el contenidor postgres_db_1
i descarrega la base de dades Scott:
$ docker exec -it postgres_db_1 sh
... $ apt update && apt install -y wget
$ wget https://gitlab.com/xtec/postgres-data/-/raw/main/scott.sql
Importa la base de dades:
... $ cat scott.sql | su postgres -c "psql"
$ exit
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.