운영 DB 볼륨 이름 고정
This commit is contained in:
@@ -33,6 +33,7 @@ services:
|
||||
|
||||
volumes:
|
||||
sori-studio-postgres:
|
||||
name: ${POSTGRES_VOLUME_NAME:-soristudio_sori-studio-postgres}
|
||||
|
||||
networks:
|
||||
sori-studio-network:
|
||||
|
||||
@@ -32,6 +32,13 @@ Linux CI 이미지에서 브라우저 시스템 의존성도 함께 준비해야
|
||||
|
||||
### 운영 마이그레이션과 미디어 카탈로그 전환
|
||||
|
||||
운영 PostgreSQL 볼륨은 Compose 프로젝트명 변화에 영향받지 않도록 `POSTGRES_VOLUME_NAME` 또는 기본값 `soristudio_sori-studio-postgres`로 실제 이름을 고정한다. UGREEN Docker 앱에서 프로젝트 이름이 달라지면 `sori-studio_sori-studio-postgres`처럼 새 빈 볼륨이 붙고 PostgreSQL init 스크립트가 다시 실행될 수 있으므로, 배포 전후 아래 명령으로 DB 컨테이너가 기존 운영 볼륨을 물고 있는지 확인한다.
|
||||
|
||||
```bash
|
||||
sudo docker inspect sori-studio-db --format '{{range .Mounts}}{{println .Name .Destination}}{{end}}'
|
||||
sudo docker volume ls | grep -i sori
|
||||
```
|
||||
|
||||
```bash
|
||||
sh scripts/migrate-production-db.sh status
|
||||
sh scripts/migrate-production-db.sh migrate
|
||||
@@ -43,6 +50,7 @@ sh scripts/migrate-production-db.sh status
|
||||
- `070_post_import_jobs.sql`은 게시물 Import 작업/항목 상태 테이블을 만든다.
|
||||
- `071_users_google_oauth.sql`은 회원 Google 로그인·계정 연동용 식별자 컬럼과 고유 인덱스를 만든다.
|
||||
- `072_analytics_content_sessions.sql`은 콘텐츠 단위 통계 세션 원장을 만들고 실시간 세션에 현재 콘텐츠 세션 해시를 추가한다.
|
||||
- `/docker-entrypoint-initdb.d` SQL 로그가 운영 DB 재기동 때 다시 보이면 기존 볼륨이 아니라 빈 새 볼륨이 붙은 것이므로 즉시 컨테이너를 중지하고 기존 볼륨명을 확인한다.
|
||||
- 배포 직후(또는 `filesystem`) 상태에서 관리자 인증 후 `POST /admin/api/media/reconcile`을 1회 실행한다. 이 API는 파일을 삭제하거나 이동하지 않고 발견 파일 upsert, 참조 백필, 사라진 파일 `missing` 표시만 수행한다.
|
||||
- `media_catalog_state`의 `ready=true`, 파일시스템/카탈로그 `count`와 `bytes` 일치, `staging`·`error` 행 0을 확인한다.
|
||||
- 확인이 끝나면 운영 env를 `MEDIA_CATALOG_MODE=database`로 고정하고 재기동한다. 개발 환경도 동일하게 `database`로 고정한다. 준비 미완료·불일치·DB 조회 오류가 발생하면 애플리케이션은 자동으로 파일시스템 목록으로 fallback한다.
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
## 2026-08-13 v1.12.16 — 운영 DB 볼륨은 프로젝트명에 맡기지 않는다
|
||||
|
||||
UGREEN Docker 앱에서 Compose 프로젝트명이 `soristudio`에서 `sori-studio`로 달라지면서 PostgreSQL named volume 실제 이름도 바뀌고, 컨테이너가 기존 운영 볼륨 대신 새 빈 볼륨을 물어 init 스크립트를 다시 실행하는 상황이 확인됐다. 기존 운영 데이터는 `soristudio_sori-studio-postgres` 볼륨에 남아 있으므로, `docker-compose.yml`의 DB 볼륨 실제 이름을 `POSTGRES_VOLUME_NAME` 기본값으로 고정해 프로젝트명 변화와 무관하게 같은 운영 볼륨을 사용한다. 배포 문서에는 볼륨 확인 명령과 init 로그 재출현 시 중지해야 한다는 경고를 추가한다.
|
||||
|
||||
## 2026-08-13 v1.12.15 — NAS 배포는 Buildx 설치 후 기본 Compose로 통일한다
|
||||
|
||||
UGREEN NAS의 Docker 빌드 문제는 프로젝트별 Compose 차이가 아니라 NAS Docker 환경에 Buildx CLI 플러그인이 없는 문제로 확인했다. Buildx는 프로젝트 파일이 아니라 Docker 환경 단위 플러그인이므로, 임시로 추가했던 `docker-compose.nas.yml` 이미지 실행 우회 경로는 제거하고 기본 `docker-compose.yml` 빌드 경로를 유지한다. 배포 문서에는 Debian 12 x86_64 NAS에서 Buildx를 수동 설치하고 `sudo docker buildx version`으로 확인하는 절차를 남긴다.
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
# 업데이트 이력
|
||||
|
||||
## v1.12.16
|
||||
|
||||
- 운영 PostgreSQL 볼륨 이름을 `POSTGRES_VOLUME_NAME` 기본값 `soristudio_sori-studio-postgres`로 고정해 Compose 프로젝트명 변경 시 새 빈 DB 볼륨이 붙지 않도록 수정.
|
||||
- 배포 문서에 운영 DB 볼륨 확인 명령과 init 스크립트 재실행 경고 추가.
|
||||
|
||||
## v1.12.15
|
||||
|
||||
- Buildx 설치 후 기본 `docker-compose.yml` 배포를 사용하도록 NAS 이미지 실행 우회 Compose 제거.
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "sori.studio",
|
||||
"version": "1.12.15",
|
||||
"version": "1.12.16",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "sori.studio",
|
||||
"version": "1.12.15",
|
||||
"version": "1.12.16",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@nuxtjs/tailwindcss": "^6.14.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "sori.studio",
|
||||
"version": "1.12.15",
|
||||
"version": "1.12.16",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"imports": {
|
||||
|
||||
Reference in New Issue
Block a user