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
);