그냥 도커 쓰자 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();