Actualizar EmDash

En esta página

Esta guía es para operadores de sitios: personas que ejecutan un sitio construido con EmDash y quieren actualizarlo a una versión más reciente. Cubre el paquete emdash y @emdash-cms/cloudflare. Los paquetes de plugins tienen su propia guía, Upgrading plugins on your site, y los cambios en sus propias colecciones y campos se cubren en Evolving a Deployed Site.

Lanzamientos y números de versión

EmDash se publica antes de la versión 1.0, y sus números de versión siguen dos reglas:

  • Un lanzamiento de parche, por ejemplo de 0.35.0 a 0.35.1, incluye correcciones de errores y pequeñas mejoras.
  • Un lanzamiento menor, por ejemplo de 0.35 a 0.36, incluye nuevas funcionalidades y cualquier cambio incompatible. Un cambio incompatible se marca con Breaking en su entrada de lanzamiento, y la entrada indica la acción que requiere de usted.

emdash y @emdash-cms/cloudflare se publican juntos y comparten un número de versión. @emdash-cms/cloudflare depende de la versión exacta correspondiente de emdash, así que actualice ambos paquetes en un solo paso. Los paquetes de plugins como @emdash-cms/plugin-forms tienen sus propios números de versión y declaran la versión mínima de emdash que necesitan.

La página de lanzamientos tiene una entrada por paquete y versión. Antes de actualizar, lea las entradas de emdash entre su versión instalada y el objetivo, y el mismo rango para @emdash-cms/cloudflare si el sitio se ejecuta en Cloudflare.

Antes de actualizar

Realice una copia de seguridad. Las migraciones del núcleo que una nueva versión aplica a la base de datos no tienen paso de deshacer, por lo que una copia de seguridad es la única forma de volver al estado anterior. Backups describe las opciones para cada base de datos.

Verifique la versión de Node.js en la máquina que construye el sitio y, para un despliegue en Node.js, en el servidor. Getting Started lista las versiones soportadas.

Actualizar los paquetes

Los comandos a continuación usan pnpm y un sitio creado desde una plantilla de Cloudflare. Para un despliegue en Node.js, omita @emdash-cms/cloudflare.

  1. Verifique las versiones instaladas y el último lanzamiento.

    pnpm outdated emdash @emdash-cms/cloudflare
  2. Lleve ambos paquetes al último lanzamiento.

    Un package.json generado por plantilla lista los paquetes con un rango caret como ^0.35.0. Para versiones por debajo de 1.0, un rango caret admite solo lanzamientos de parche (0.35.1, no 0.36.0), y pnpm up sin más opciones se mantiene dentro del rango. La bandera --latest reescribe el rango al lanzamiento más reciente y lo instala.

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

    Agregue los paquetes de plugins de su package.json al mismo comando.

  3. Construya el sitio.

    pnpm build

    El build escribe el manifiesto de migración para la versión instalada. Si el build falla, consulte Si el sitio se rompe después de una actualización.

  4. Inicie el sitio localmente y abra el admin en /_emdash/admin.

    pnpm dev

    La integración EmDash genera emdash-env.d.ts cuando el servidor de desarrollo se inicia. Las migraciones del núcleo pendientes se ejecutan en la primera solicitud.

Desplegar y verificar

Despliegue el build de la misma manera que cualquier otro cambio. El siguiente comando despliega un sitio de Cloudflare; para un despliegue en Node.js, reinicie el proceso del servidor con el nuevo build.

pnpm wrangler deploy

Con el modo de migración en tiempo de ejecución predeterminado, auto, el sitio desplegado aplica las migraciones del núcleo pendientes en su primera solicitud. Para aplicarlas antes de que el nuevo código reciba tráfico, y para verificar la base de datos desplegada después, siga Manage Core Database Migrations. Su comando emdash migrate --check sale con código distinto de cero cuando la base de datos desplegada tiene migraciones pendientes o desconocidas para la versión instalada.

Después del despliegue, abra el admin y una página pública del sitio.

Si el sitio se rompe después de una actualización

  • El build falla, o una página propia da error en tiempo de ejecución: lea las entradas de lanzamiento marcadas con Breaking para las versiones que omitió y realice los cambios indicados.
  • Un plugin no se carga: lea la entrada de lanzamiento propia del plugin y Upgrading plugins on your site.
  • Un error nombra una API de Astro o un paquete @astrojs/*: EmDash requiere Astro 6 o posterior. La guía de actualización de Astro explica cómo actualizar astro y sus integraciones oficiales juntos.
  • Para volver al lanzamiento anterior, reinstale las versiones anteriores de los paquetes. Reinstalar no deshace las migraciones del núcleo; si el lanzamiento anterior falla contra la base de datos migrada, restaure la copia de seguridad tomada antes de la actualización.