EmDash 업데이트

이 페이지

이 가이드는 사이트 운영자를 위한 것입니다: EmDash로 구축된 사이트를 운영하며 최신 릴리스로 업데이트하고 싶은 분들을 대상으로 합니다. emdash 패키지와 @emdash-cms/cloudflare를 다룹니다. 플러그인 패키지는 별도의 가이드 Upgrading plugins on your site가 있으며, 자체 컬렉션과 필드 변경은 Evolving a Deployed Site에서 다룹니다.

릴리스 및 버전 번호

EmDash는 버전 1.0 이전에 릴리스되며, 버전 번호는 두 가지 규칙을 따릅니다:

  • 패치 릴리스(예: 0.35.0에서 0.35.1)는 버그 수정과 작은 개선을 포함합니다.
  • 마이너 릴리스(예: 0.35에서 0.36)는 새로운 기능과 호환성을 깨는 변경을 포함합니다. 호환성을 깨는 변경은 릴리스 항목에서 Breaking으로 표시되며, 해당 항목에 필요한 조치가 명시됩니다.

emdash@emdash-cms/cloudflare는 함께 릴리스되며 동일한 버전 번호를 공유합니다. @emdash-cms/cloudflare는 정확히 일치하는 emdash 버전에 의존하므로, 두 패키지를 한 번에 업데이트하세요. @emdash-cms/plugin-forms와 같은 플러그인 패키지는 고유한 버전 번호를 가지며 필요한 최소 emdash 버전을 선언합니다.

릴리스 페이지에는 패키지와 버전별로 하나의 항목이 있습니다. 업데이트 전에 설치된 버전과 대상 사이의 emdash 항목을 읽고, 사이트가 Cloudflare에서 실행 중이면 @emdash-cms/cloudflare도 같은 범위를 읽으세요.

업데이트 전

백업을 하세요. 새 릴리스가 데이터베이스에 적용하는 코어 마이그레이션에는 되돌리기 단계가 없으므로, 백업이 이전 상태로 돌아가는 유일한 방법입니다. Backups에서 각 데이터베이스의 옵션을 설명합니다.

사이트를 빌드하는 머신과 Node.js 배포의 경우 서버의 Node.js 버전을 확인하세요. Getting Started에서 지원 버전을 나열합니다.

패키지 업데이트

아래 명령은 pnpm과 Cloudflare 템플릿에서 생성된 사이트를 사용합니다. Node.js 배포의 경우 @emdash-cms/cloudflare를 생략하세요.

  1. 설치된 버전과 최신 릴리스를 확인합니다.

    pnpm outdated emdash @emdash-cms/cloudflare
  2. 두 패키지를 최신 릴리스로 업데이트합니다.

    템플릿으로 생성된 package.json^0.35.0과 같은 캐럿 범위로 패키지를 나열합니다. 1.0 미만 버전에서 캐럿 범위는 패치 릴리스만 허용하며(0.35.1은 가능, 0.36.0은 불가), 추가 옵션 없는 pnpm up은 범위 내에 유지됩니다. --latest 플래그는 범위를 최신 릴리스로 다시 작성하고 설치합니다.

    pnpm up --latest emdash @emdash-cms/cloudflare

    package.json의 플러그인 패키지도 같은 명령에 추가하세요.

  3. 사이트를 빌드합니다.

    pnpm build

    빌드는 설치된 버전의 마이그레이션 매니페스트를 작성합니다. 빌드가 실패하면 업데이트 후 사이트가 고장난 경우를 참조하세요.

  4. 사이트를 로컬에서 시작하고 /_emdash/admin에서 관리자를 엽니다.

    pnpm dev

    EmDash 통합은 개발 서버 시작 시 emdash-env.d.ts를 생성합니다. 보류 중인 코어 마이그레이션은 첫 번째 요청에서 실행됩니다.

배포 및 확인

다른 변경사항과 같은 방법으로 빌드를 배포합니다. 다음 명령은 Cloudflare 사이트를 배포합니다. Node.js 배포의 경우 새 빌드로 서버 프로세스를 재시작하세요.

pnpm wrangler deploy

기본 런타임 마이그레이션 모드 auto에서 배포된 사이트는 첫 번째 요청에서 보류 중인 코어 마이그레이션을 적용합니다. 새 코드가 트래픽을 받기 전에 적용하고, 배포된 데이터베이스를 이후에 검증하려면 Manage Core Database Migrations를 따르세요. 그 emdash migrate --check 명령은 배포된 데이터베이스에 설치된 버전의 보류 중이거나 알 수 없는 마이그레이션이 있을 때 0이 아닌 코드로 종료됩니다.

배포 후 관리자와 사이트의 공개 페이지 하나를 열어보세요.

업데이트 후 사이트가 고장난 경우

  • 빌드가 실패하거나 자체 페이지가 런타임에 오류를 발생: 건너뛴 버전의 Breaking 표시된 릴리스 항목을 읽고 명시된 변경을 수행하세요.
  • 플러그인 로드 실패: 플러그인 자체의 릴리스 항목과 Upgrading plugins on your site를 읽으세요.
  • 오류가 Astro API 또는 @astrojs/* 패키지를 언급: EmDash는 Astro 6 이상이 필요합니다. Astro의 업그레이드 가이드에서 astro와 공식 통합을 함께 업데이트하는 방법을 설명합니다.
  • 이전 릴리스로 돌아가려면 패키지의 이전 버전을 재설치하세요. 재설치는 코어 마이그레이션을 되돌리지 않습니다. 이전 릴리스가 마이그레이션된 데이터베이스에서 실패하면, 업데이트 전에 만든 백업을 복원하세요.