PostgreSQL

Docker

Il y a une image officielle pour PostgreSQL. Les versions de l’image suivent celles de la base de données.

docker pull postgres
# ou
docker pull postgres:15.1

Pour y accéder de l’extérieur, il faut ouvrir le port 5432.

Le mot de passe peut être passé en variable d’environnement POSTGRES_PASSWORD.

Pour stocker les données à l’extérieur du conteneur, il faut mettre le répertoire /var/lib/postgresql/data en volume.

On peut ajouter des scripts d’initialisation (*.sql, *.sh) dans le répertoire /docker-entrypoint-initdb.d.

docker run --name pg-server --rm                             \
           --volume pg-data:/var/lib/postgresql/data         \
           --volume $(pwd)/init:/docker-entrypoint-initdb.d  \
           --env POSTGRES_PASSWORD=password                  \
           --network db                                      \
           --publish 5432:5432                               \
           --detach postgres

La même image contient le client psql.

docker run -it --rm --network db postgres psql -h pg-server -U postgres

Extensions

uuid-ossp permet de générer des UUID en version 4.

CREATE EXTENSION "uuid-ossp" SCHEMA public;

SELECT uuid_generate_v4();

CREATE TABLE my_table (
    id uuid DEFAULT uuid_generate_v4() NOT NULL,
    ...
)

Citus est une extension à PostgreSQL pour en faire une base de données distribuée.

Pages dans la catégorie PostgreSQL