Post

PostgreSQL: Ein kleiner Einstieg

PostgreSQL: Schon oft davon gehört, aber bislang nie selbst genutzt. Was für andere in meiner Branche selbstverständlich zu sein scheint, war für mich bisher ein Buch mit sieben Siegeln. Zeit zum Aufholen! Dies ist ein kleiner Write-Up aus meinen Recherchenotizen.

PostgreSQL (Software)

PostreSQL ist eine Open-Source objekt-relationale Datenbankmanagementsystem (ORDBMS). Es unterstützt einen Großteil des SQL-Standards. PostgreSQL verwendet ein client/server model. Eine PostgreSQL session besteht aus den folgenden Prozessen:

  • Ein Serverprozess, welcher die Datenbank verwaltet, Verbindungsanfragen von Clients annimmt und Datenbankoperationen für den Client ausführt. Dieser Serverprozess heißt postgres.
  • Ein Clientprozess (das frontend), der Datenbankoperationen ausführen will. Clients können verschiedene Formen annehmen: Textorientierte Tools, eine graphische Anwendung, ein Webserver oder Datenbank-Wartungsprozesse.

Client und Server können auf verschiedenen Hosts laufen - in dem Fall kommunizieren sie über das Netzwerk via TCP/IP. Ein PostgreSQL server kann mehrere Clients gleichzeitig bedienen.

Nachdem PostgreSQL installiert ist, kann man über das Terminal mit dem Server kommunizieren, z.B. über createdb, dropdb, oder psql. Hilfreiche GUI-Tools sind u.A.:

  • dpage/pgadmin4 (docker)

Setup

Via Docker:

1
2
docker pull postgres:latest
docker run --name my-postgres-database -e POSTGRES_PASSWORD=mypassword -d postgres

Docker-compose:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
services:
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      -  pgdata:/var/lib/postgresql/data
    expose:
      - 5432

volumes:
  pgdata:
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

Weitere relevante Environmentvariablen. Diese sind in einem .env-file anzulegen.

  • POSTGRES_USER - Setzt einen Superuser und eine gleichnamige Datenbank.
  • POSTGRES_DB - Name der Datenbank, default POSTGRES_USER.
  • POSTGRES_INITDB_ARGS - Sendet Argumente zu postgres_initdb
  • POSTGRES_INITDB_WALDIR - Pfad zum Postgres transaction log.
  • POSTGRES_HOST_AUTH_METHOD - Bestimmt die autho-method für host Verbindungen zu all Datenbanken, Users und Adressen
  • PGDATA - Standardpfad für Datenbankdateien.

Benutzung

Sobald PostgreSQL via Docker läuft, lässt sich damit einfach über den Docker daemon zugreifen. psql ist der Befehl, der die interaktive Postgres-Konsole öffnet.

1
docker exec -it -u postgres some-postgres psql

docker inspect pg_container suche ip adresse tippe ip adresse in host name feld von pgadmin

Resourcen

This post is licensed under CC BY 4.0 by the author.