Atualizar EmDash

Nesta página

Este guia é para operadores de sites: pessoas que executam um site construído com EmDash e querem atualizá-lo para uma versão mais recente. Ele cobre o pacote emdash e @emdash-cms/cloudflare. Pacotes de plugins têm seu próprio guia, Upgrading plugins on your site, e alterações em suas próprias coleções e campos são cobertas em Evolving a Deployed Site.

Releases e números de versão

O EmDash é lançado antes da versão 1.0, e seus números de versão seguem duas regras:

  • Uma release de patch, por exemplo 0.35.0 para 0.35.1, traz correções de bugs e pequenas melhorias.
  • Uma release minor, por exemplo 0.35 para 0.36, traz novos recursos e qualquer mudança incompatível. Uma mudança incompatível é marcada com Breaking em sua entrada de release, e a entrada indica a ação necessária da sua parte.

emdash e @emdash-cms/cloudflare são lançados juntos e compartilham um número de versão. @emdash-cms/cloudflare depende da versão exata correspondente do emdash, então atualize os dois pacotes em um único passo. Pacotes de plugins como @emdash-cms/plugin-forms têm seus próprios números de versão e declaram a versão mínima do emdash que precisam.

A página de releases tem uma entrada por pacote e versão. Antes de uma atualização, leia as entradas do emdash entre sua versão instalada e o alvo, e o mesmo intervalo para @emdash-cms/cloudflare se o site roda no Cloudflare.

Antes de atualizar

Faça um backup. Migrações do core que uma nova release aplica ao banco de dados não têm etapa de desfazer, então um backup é o único caminho de volta ao estado anterior. Backups descreve as opções para cada banco de dados.

Verifique a versão do Node.js na máquina que constrói o site e, para um deploy Node.js, no servidor. Getting Started lista as versões suportadas.

Atualizar os pacotes

Os comandos abaixo usam pnpm e um site criado a partir de um template Cloudflare. Para um deploy Node.js, omita @emdash-cms/cloudflare.

  1. Verifique as versões instaladas e a última release.

    pnpm outdated emdash @emdash-cms/cloudflare
  2. Atualize ambos os pacotes para a última release.

    Um package.json gerado por template lista os pacotes com um range caret como ^0.35.0. Para versões abaixo de 1.0, um range caret admite apenas releases de patch (0.35.1, não 0.36.0), e pnpm up sem opções adicionais permanece dentro do range. O flag --latest reescreve o range para a release mais recente e a instala.

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

    Adicione os pacotes de plugins do seu package.json ao mesmo comando.

  3. Construa o site.

    pnpm build

    O build escreve o manifesto de migração para a versão instalada. Se o build falhar, veja Se o site quebrar após uma atualização.

  4. Inicie o site localmente e abra o admin em /_emdash/admin.

    pnpm dev

    A integração EmDash gera emdash-env.d.ts quando o servidor de desenvolvimento inicia. Migrações do core pendentes são executadas na primeira requisição.

Implantar e verificar

Implante o build da mesma forma que qualquer outra mudança. O comando a seguir implanta um site Cloudflare; para um deploy Node.js, reinicie o processo do servidor com o novo build.

pnpm wrangler deploy

Com o modo de migração em tempo de execução padrão, auto, o site implantado aplica migrações do core pendentes em sua primeira requisição. Para aplicá-las antes que o novo código receba tráfego, e para verificar o banco de dados implantado depois, siga Manage Core Database Migrations. Seu comando emdash migrate --check sai com código diferente de zero quando o banco de dados implantado tem migrações pendentes ou desconhecidas para a versão instalada.

Após o deploy, abra o admin e uma página pública do site.

Se o site quebrar após uma atualização

  • O build falha, ou uma página sua dá erro em tempo de execução: leia as entradas de release marcadas com Breaking para as versões que você pulou e faça as mudanças indicadas.
  • Um plugin falha ao carregar: leia a entrada de release própria do plugin e Upgrading plugins on your site.
  • Um erro menciona uma API do Astro ou um pacote @astrojs/*: EmDash requer Astro 6 ou posterior. O guia de atualização do Astro explica como atualizar astro e suas integrações oficiais juntos.
  • Para voltar à release anterior, reinstale as versões anteriores dos pacotes. Reinstalar não desfaz migrações do core; se a release anterior falhar contra o banco de dados migrado, restaure o backup feito antes da atualização.