사용자 도구

사이트 도구


postgresql

Postgresql

그냥 도커 쓰자 docker-compose.yml

version: '2'
services:
  postgres:
    image: postgres
    container_name: <YOUR_CONTAINER_NAME>
    environment:
      - POSTGRES_PASSWORD=<YOUR_PASSWORD>
      - POSTGRES_INITDB_ARGS=--encoding=UTF-8

    expose:
      - '54321'
    ports:
      - '54321:5432'
    volumes:
      - ./data:/var/lib/postgresql/data
      - ./home:/home
    restart: always
    

Windows

version: '2'
services:
  postgres:
    image: postgres
    container_name: <YOUR_CONTAINER_NAME>
    environment:
      - POSTGRES_PASSWORD=<YOUR_PASSWORD>
      - POSTGRES_INITDB_ARGS=--encoding=UTF-8
    expose:
      - '54321'
    ports:
      - '54321:5432'
    volumes:
      - pgdata:/var/lib/postgresql/data
      - ./home:/home
    restart: always
  
volumes: 
  pgdata:

더 편한데 유저 개념은 좀 달라서 잘 모르겠다…

오히려 리눅스의 유저의 사용권한(RW)에 더 가까운 형태

http://dba.stackexchange.com/questions/56576/postgresql-user-permissions

일단 mysql와 마찬가지로 설정폴더와 데이터폴더가 나뉘어있고 이를 적절히 활용하여야한다.

데이터폴더 기본값: /var/lib/postgresql/…

설정폴더 기본값: /etc/postgresql/…

맥은 위치가 다르다.

레플리케이션 친절한 튜토리얼이 구글에있다. https://cloud.google.com/solutions/setup-postgres-hot-standby

프라이머리에서 repuser를 pg_hba에서 받아들이고 연결가능하게 설정한 뒤 디비를 백업한다.

데이터베이스 마이그레이션

Django DB를 SQLite에서 Postgresql 로 바꾸려고 함.

먼저 이 방법 을 해볼 것.

안되면 도커로 ruby를 설치해서 위 링크의 @abitarn의 답변을 수행하자.

sqlite:// 까지가 프로토콜이다.

사용했던 docker-compose.yml

version: '3'

services:
    ruby:
        container_name: ruby-translate-db
        image: ruby
        volumes:
            - ..:/home
        stdin_open: true
        tty: true
        network_mode: "host"

연결 끊기

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB' -- ← change this to your DB
  AND pid <> pg_backend_pid();
postgresql.txt · 마지막으로 수정됨: 2021/04/13 06:54 (바깥 편집)