===== Postgresql ===== 그냥 도커 쓰자 docker-compose.yml version: '2' services: postgres: image: postgres container_name: environment: - POSTGRES_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: environment: - POSTGRES_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 로 바꾸려고 함. 먼저 [[https://gist.github.com/sirodoht/f598d14e9644e2d3909629a41e3522ad|이 방법]] 을 해볼 것. 안되면 도커로 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();