[복구, paperless-ngx] 업데이트 실수로 다시 설치
상황
- 업데이트 실수로 docker compose 파일이 수정됨
- postgresql, redis, webserver 모두 버전 업됨.
- 복구용 media 폴더는 백업되어 있음.
- 복구용 postgres.sql 백업되어 있음.
시행착오
- 이놈 복구 재설치가 매우 까다롭다.
성공
- docker-compose.yaml 와 docker-compose.env 파일 준비
최대한 원래의 docker-compose.yaml 로 만들기 위해 노력함. (왜 백업하라는지 절실히 느낌)
version: "3.4"
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/datadb:
image: docker.io/library/postgres:17
restart: unless-stopped
volumes:
- ./db:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperlesswebserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
ports:
- "5567:8000"
volumes:
- ./data:/usr/src/paperless/data
- ./media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: dbvolumes:
redisdata:
docker-compose.env
PAPERLESS_TIME_ZONE=Asia/Seoul
PAPERLESS_OCR_LANGUAGE=eng+kor
PAPERLESS_SECRET_KEY='!5Re9$yfI%f8<RqOm^o7vD=+ya{wKI7+E<n0~dP2xXL?rZwz&)Rq8CGabej&YiM+'
PAPERLESS_OCR_LANGUAGES=eng kor
- psql 컨테이너만 실행
ubuntu@hostname:/vo3/docker/paperless/paperless-ngx$ sudo docker compose up -d db
WARN[0000] /vo3/docker/paperless/paperless-ngx/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 1/1
✔ Container paperless-db-1 Started
- psql backup 파일을 컨테이너에 넣는다.
ubuntu@hostname:/vo3/docker/paperless/paperless-ngx$ cat backup.sql | docker exec -i paperless-db-1 psql -U paperless -d paperless
- 마지막으로 전체 실행
ubuntu@hostname:/vo3/docker/paperless/paperless-ngx$ sudo docker compose up -d
WARN[0000] /vo3/docker/paperless/paperless-ngx/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 3/3
✔ Container paperless-db-1 Running 0.0s
✔ Container paperless-broker-1 Started 0.2s
✔ Container paperless-webserver-1 Started
총평
- psql 백업이 힘들었다.
이유는 이미 docker compose up 를 한 후에, db 파일을 넣으려고 하면, 에러가 발생한다.
ERROR: multiple primary keys for table "account_emailaddress" are not allowed
ERROR: relation "account_emailaddress_user_id_email_987c8728_uniq" already exists
ERROR: relation "account_emailconfirmation_key_key" already exists
ERROR: multiple primary keys for table "account_emailconfirmation" are not allowed
그래서, db 만 깨끗한 상태 (텅빈상태)로 실행 후, 백업파일을 넣고, 전체 컨테이너를 실행하면 됨.
믿음직.
이 댓글을