Developer.

PostgreSQL - instalacja

Premiera 14 wersji PostgreSQL to dobry pretekst żeby zacząć pracować z tą bazą danych.

Docker

Podstawowy setup:

version: '3.7'
services:
    postgres:
        image: postgres:14
        restart: always
        environment:
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=postgresp
        logging:
          options:
            max-size: 10m
            max-file: "3"
        ports:
          - '5432:5432'
        volumes:
          - ./postgres-data:/var/lib/postgresql/data

Zawartość pliku docker-compose.yml przy korzystaniu z plików .env:

# docker-compose --env-file pg.env up -d
version: '3.5'
services:
  postgres:
    env_file:
      - pg.env
    container_name: pg_container
    image: postgres:14-bullseye
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      PGDATA: /data/postgres
    volumes:
      - postgres:/data/postgres
    ports:
      - '5432:5432'
    networks:
      - postgres
    restart: unless-stopped
networks:
  postgres:
    driver: bridge
volumes:
  postgres:
  pgadmin:

Uruchomienie:

docker-compose --env-file pg.env up -d

Dodanie nowego użytkownika

docker exec 0f993d217929 psql -h localhost -U postgres -c "CREATE USER postgres2 WITH PASSWORD 'postgres2';"

Edycja hasła:

docker exec 0f993d217929 psql -h localhost -U postgres -c "ALTER USER postgres WITH PASSWORD 'postgres';"

PGAdmin

docker run -p 5050:80 -e "PGADMIN_DEFAULT_EMAIL=m@m.com" -e "PGADMIN_DEFAULT_PASSWORD=1234" -d  dpage/pgadmin4

Tworzenie nowej tabeli

CREATE TABLE users (
    id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    client_id bigint,
    email varchar(128),
    "password" varchar(255),
    auth_token varchar(128),
    auth_token_valid_to timestamptz,
    is_active boolean,
    service_token varchar(100),
    service_token_valid_to timestamptz,
    first_name varchar(100),
    last_name varchar(100),
    user_role_id bigint,
    deleted_at timestamptz,
    created_at timestamptz,
    updated_at timestamptz,
    uuid uuid
);