업데이트 및 마이그레이션: 이미지 롤백
목표 및 결과
섹션 제목: “목표 및 결과”이 페이지 전용 절차를 수행합니다: 업데이트 및 마이그레이션: 이미지 롤백. 이 절차에서 다루는 항목: PREVIOUS_IMAGE · pg_restore --exit-on-error · discvault.failed- · DISCVAULT_IMAGE.
적용 대상
섹션 제목: “적용 대상”이 페이지의 적용 범위: 업데이트 및 마이그레이션: 이미지 롤백 (Docker · Unraid). 채널 및 데이터 경계: DiscVault · ghcr.io/helmerznl/discvault:latest; 이전 이미지를 시작하기 전에 일치하는 데이터를 복원함; PostgreSQL /data; DiscVault · ghcr.io/helmerznl/discvault:beta; 이전 이미지를 시작하기 전에 일치하는 데이터를 복원함; PostgreSQL /data. 이 페이지의 전용 확인 지점: PREVIOUS_IMAGE · pg_restore --exit-on-error · discvault.failed- · DISCVAULT_IMAGE.
DiscVault v26 안정판
섹션 제목: “DiscVault v26 안정판”- DiscVault ·
ghcr.io/helmerznl/discvault:latest - 이전 이미지를 시작하기 전에 일치하는 데이터를 복원함
- PostgreSQL
/data
DiscVault v26 베타
섹션 제목: “DiscVault v26 베타”- DiscVault ·
ghcr.io/helmerznl/discvault:beta - 이전 이미지를 시작하기 전에 일치하는 데이터를 복원함
- PostgreSQL
/data
사전 요구 사항
섹션 제목: “사전 요구 사항”- 일치하는 백업 세트
PREVIOUS_IMAGE
- 중지:
next-apinext-workernext-mcp - 복원:
/data - 복원: PostgreSQL ·
pg_restore --exit-on-error - 시작:
PREVIOUS_IMAGE→ API → MCP
명령 및 설정
섹션 제목: “명령 및 설정”두 채널
섹션 제목: “두 채널”set -euo pipefailBACKUP_ID=20260714T180000Zcd /opt/discvault. "/srv/backups/discvault-$BACKUP_ID.env"test -n "$PREVIOUS_IMAGE"export DISCVAULT_IMAGE="$PREVIOUS_IMAGE"docker pull "$DISCVAULT_IMAGE"ENV_FILE=/opt/discvault/.envENV_TMP="$(mktemp "$ENV_FILE.restore.XXXXXX")"trap 'rm -f "$ENV_TMP"' EXITawk -v image="$DISCVAULT_IMAGE" ' /^DISCVAULT_IMAGE=/ { print "DISCVAULT_IMAGE=" image; found=1; next } { print } END { if (!found) exit 42 }' "$ENV_FILE" > "$ENV_TMP"chmod 0600 "$ENV_TMP"docker compose --env-file .env -p discvault -f compose.yaml stop next-worker next-mcp next-apimv /srv/discvault "/srv/discvault.failed-$(date -u +%Y%m%dT%H%M%SZ)"tar --acls --xattrs -C /srv -xzf \ "/srv/backups/discvault-data-$BACKUP_ID.tgz"docker compose --env-file .env -p discvault -f compose.yaml up -d postgresdocker compose --env-file .env -p discvault -f compose.yaml exec -T postgres \ sh -c 'dropdb --if-exists --force -U "$POSTGRES_USER" "$POSTGRES_DB"'docker compose --env-file .env -p discvault -f compose.yaml exec -T postgres \ sh -c 'createdb -U "$POSTGRES_USER" "$POSTGRES_DB"'docker compose --env-file .env -p discvault -f compose.yaml exec -T postgres \ sh -c 'pg_restore --exit-on-error --no-owner -U "$POSTGRES_USER" -d "$POSTGRES_DB"' \ < "/srv/backups/discvault-$BACKUP_ID.dump"docker compose --env-file .env -p discvault -f compose.yaml up -d --force-recreate next-apicurl --fail http://localhost:6080/api/next/healthdocker compose --env-file .env -p discvault -f compose.yaml \ up -d --force-recreate next-worker next-mcpdocker compose --env-file .env -p discvault -f compose.yaml psmv "$ENV_TMP" "$ENV_FILE"trap - EXIT예상 결과
섹션 제목: “예상 결과”다음 결과의 승인 조건: 업데이트 및 마이그레이션: 이미지 롤백 아래 결과가 모두 충족된 경우에만: PREVIOUS_IMAGE · @sha256:; 이전 이미지를 시작하기 전에 일치하는 데이터를 복원함; 라이브러리 수와 미디어 샘플이 선택한 백업과 일치함. 이 페이지의 전용 확인 지점: PREVIOUS_IMAGE · pg_restore --exit-on-error · discvault.failed- · DISCVAULT_IMAGE.
PREVIOUS_IMAGE·@sha256:- 이전 이미지를 시작하기 전에 일치하는 데이터를 복원함
- 라이브러리 수와 미디어 샘플이 선택한 백업과 일치함
안전 및 롤백
섹션 제목: “안전 및 롤백”다음 단계
섹션 제목: “다음 단계”업데이트 및 마이그레이션: DiscVault 26 마이그레이션
출처 및 상태
섹션 제목: “출처 및 상태”helmerzNL/DiscVault@6d27c689ac21- 출처 및 상태:
2026-07-14 - DiscVault Docs:
0.1.0
