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.
-
Verifique as versões instaladas e a última release.
pnpm outdated emdash @emdash-cms/cloudflare -
Atualize ambos os pacotes para a última release.
Um
package.jsongerado 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), epnpm upsem opções adicionais permanece dentro do range. O flag--latestreescreve o range para a release mais recente e a instala.pnpm up --latest emdash @emdash-cms/cloudflareAdicione os pacotes de plugins do seu
package.jsonao mesmo comando. -
Construa o site.
pnpm buildO 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.
-
Inicie o site localmente e abra o admin em
/_emdash/admin.pnpm devA integração EmDash gera
emdash-env.d.tsquando 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 atualizarastroe 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.