# Postgresql

Ce tuto est destiné à Ubuntu.

# Installation

  • Ajouter le répertoire apt :
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
  • Lancer l'installation en choisissant votre version (9.4, 9.5, 9.6, 10, 12) :
sudo apt-get install postgresql-12

# Configuration

# UTF-8

Cette suite de cmd va mettre psql en mode utf-8.

  • Lister les clusters :
sudo -i -u postgres
pg_lsclusters

Cette commande donne en résultat :

Version Cluster   Port Status Owner    Data directory                     Log file
9.1     main      5432 online postgres /var/lib/postgresql/9.1/main       /var/log/postgresql/postgresql-9.1-main.log
  • On récupère la version, on supprime le cluster et on le recrée :
pg_dropcluster 9.1 main --stop
pg_createcluster --locale fr_FR.UTF-8 9.1 main
pg_ctlcluster 9.1 main start
psql -l

La dernière commande devrait montrer les configurations utf-8.

# Création user et BDD

  • Se connecter a l'utilisateur postgre et lancer le CLI Postgresql :
sudo -i -u postgres
psql
  • Créer et configurer le nouvel utilisateur :
CREATE USER <nom_utilisateur>;
ALTER ROLE <nom_utilisateur> WITH SUPERUSER;
ALTER USER <nom_utilisateur> WITH ENCRYPTED PASSWORD 'mon_mot_de_passe';
  • Créer la première base de données :
CREATE DATABASE <nom_base_de_donnee> OWNER <nom_utilisateur>;

# Docker

# Docker Compose

Pour un projet snapshot rapide, docker est idéal.

  • Le fichier docker-compose.yml :
version: '3.1'

services:
  db:
    image: postgres:9.6
    restart: always
    env_file: database.env
    volumes:
      - ./pgdata:/var/lib/postgresql/data
      - ./data:/docker-entrypoint-initdb.d/
    ports:
      - "5433:5432"
  • Le fichier database.env :
POSTGRES_USER=so_emballage
POSTGRES_PASSWORD=so_emballage
POSTGRES_DB=so_emballage

La liste des variables d'env est dispo ici (opens new window).

Utilisation :

  • Placer tous vos fichiers sql d'initialisation dans un dossier data. Attention : Ils sont executés par ordre alphabétique.
  • Ensuite lancer :
sudo  docker-compose pull && sudo  docker-compose build --no-cache && sudo docker-compose up --force-recreate

Pour un example complet : https://github.com/ripoul/MSPR-BI (opens new window).

# Docker run

docker run -d -p 5432:5432 --name postgres -e POSTGRES_USER=so_emballage -e POSTGRES_PASSWORD=so_emballage -e POSTGRES_DB=so_emballage postgres:9.6
Last Updated: 10/18/2020, 10:19:55 AM