Backup só do banco da loja Magento basta?

Não. O banco guarda produtos, clientes, pedidos e a maior parte da configuração, mas a loja que vende depende de mais peças: as imagens, o código com módulos e tema, as versões exatas das dependências, as credenciais do ambiente e a configuração do servidor. Restaurar só o banco numa instalação nova devolve os dados sem a loja em volta deles.

A ferramenta de backup do próprio Magento já separava código, mídia e banco em três arquivos, e deixava de fora as pastas var e pub/static. Essa ferramenta está marcada como obsoleta pela Adobe desde as versões 2.1.16, 2.2.7 e 2.3.0, com a recomendação de usar outras tecnologias de backup. O recorte continua útil: uma loja Magento tem partes diferentes, e cada uma precisa estar em algum lugar da cópia.

Aqui o assunto é o que a cópia precisa conter. A prova de que ela restaura é o teste trimestral do calendário de manutenção preventiva.

O que incluir no backup da loja Magento: as oito partes

ParteSe faltar na restauraçãoOnde costuma ficarPergunta ao fornecedor
Banco de dadosSem pedidos, clientes, catálogo e configuraçãoServidor de banco ou serviço gerenciadoCom que frequência a cópia roda e onde ela fica fora do servidor?
pub/mediaProdutos sem foto, banners e imagens de blocos quebradosPasta da loja ou armazenamento remotoAs imagens entram no mesmo backup ou em outro?
app/etc/env.phpA loja não conecta no banco e não lê os dados criptografadosSó no servidor, fora do gitOnde está a cópia do env.php e quem tem acesso a ela?
app/etc/config.phpLista de módulos ativos e configuração compartilhada diferentes da produçãoRepositórioO config.php está versionado e igual ao de produção?
composer.json e composer.lockReinstalação puxa versões diferentes das que estavam no arRepositórioO composer.lock do repositório bate com o de produção?
Código próprio em app/code e app/designMódulos e tema sob medida perdidosRepositórioEm nome de quem está o repositório?
Credenciais do repo.magento.com (auth.json)A instalação das dependências falha nos pacotes pagosFora do repositórioEm qual conta do Commerce Marketplace estão as chaves?
Configuração do servidor: nginx, crontab, supervisor dos consumers, versões de PHP e serviçosLoja volta sem cron, sem filas ou com PHP erradoSó no servidorExiste cópia ou documentação dessa configuração?

Sobre o pub/media no backup do Magento: as fotos de produto e as imagens de categorias e blocos ficam nessa pasta, e não no banco. Um dump perfeito, sem ela, devolve o catálogo inteiro sem imagem.

Chave de criptografia do env.php no backup: a armadilha mais cara

O Magento guarda alguns dados no banco criptografados com a chave que fica em app/etc/env.php, no item crypt/key (é o mesmo lugar na 2.4.8 e na 2.4.9). No código da 2.4.8-p4, por exemplo, entram nessa lista a senha do SMTP configurada no admin, credenciais de módulos de frete e de pagamento, as chaves do reCAPTCHA, a configuração de 2FA de cada administrador e os segredos das integrações OAuth.

Restaurar o banco com um env.php sem a chave original dá uma loja que abre, mas não consegue ler esses valores: o envio pelo SMTP falha, o módulo de frete ou de pagamento não autentica e as integrações precisam de credenciais novas. Três cuidados:

  • guarde uma cópia do env.php com acesso restrito e fora de qualquer pasta pública;
  • a cada troca de chave com bin/magento encryption:key:change, faça uma cópia nova do env.php: a antiga não tem a chave nova, e a Adobe lembra que ela é necessária para decifrar os dados;
  • não versione o env.php nem o auth.json; a documentação do Composer recomenda manter o auth.json no .gitignore.

O que não precisa entrar no backup do Magento

Algumas pastas são geradas a partir do código e do banco. Copiar essas pastas só aumenta o tamanho e a duração do backup:

  • var/cache e var/page_cache: cache, recriado com a loja em uso;
  • generated: classes geradas pela compilação;
  • pub/static: arquivos publicados pelo deploy de estáticos;
  • índice do OpenSearch: refeito pela reindexação a partir do banco.

O detalhe é que reconstruir leva tempo. Compilação, deploy de estáticos e reindexação entram na conta da restauração, e com catálogo grande isso pesa. Já var/log e var/report não são necessários para a loja voltar, mas guardar alguns dias deles ajuda a investigar o que aconteceu.

Backup da hospedagem ou snapshot do Adobe Commerce Cloud substituem o seu?

O backup da hospedagem cobre a loja Magento? Pode cobrir, mas cada hospedagem define o próprio serviço. Confirme por escrito:

  1. O banco é copiado com dump consistente ou só como cópia de arquivos com o banco rodando?
  2. pub/media e app/etc entram na cópia?
  3. A cópia fica fora do servidor e fora da mesma conta?
  4. Por quantos dias ela é mantida, quem restaura e em quanto tempo?

O snapshot do Adobe Commerce Cloud substitui o backup? Em parte. Pela documentação da Adobe, o snapshot inclui o banco e os volumes montados (var, pub/media, app/etc), mas não o código, que já está no repositório git do projeto, e não pode ser baixado. Snapshot manual existe nos ambientes Starter e nos de integração do Pro, e fica guardado por sete dias. Staging e Production do Pro recebem backups automáticos para recuperação de desastre; o suporte da Adobe entrega o snapshot, mas a restauração do banco fica com você. A base de conhecimento da Adobe avisa ainda que esse snapshot não substitui o backup que a loja deve criar antes de um upgrade.

Se quiser essa conferência feita na sua loja, ela está no que o suporte Magento 2 cobre.

Perguntas frequentes

Backup só do banco da loja Magento basta?

Não. O banco tem produtos, clientes, pedidos e configuração, mas a loja também depende das imagens em pub/media, do código com módulos e tema, do composer.lock, do app/etc/env.php com a chave de criptografia e da configuração do servidor. Sem essas partes, a restauração devolve os dados sem a loja funcionando.

Por que a chave de criptografia do env.php precisa estar no backup?

Porque o Magento guarda criptografados com ela dados como a senha do SMTP, credenciais de módulos de pagamento e frete e segredos de integrações. Restaurado com outra chave, o banco volta com esses valores ilegíveis. Guarde a cópia do env.php com acesso restrito e renove a cópia a cada troca de chave.

O snapshot do Adobe Commerce Cloud substitui o backup?

Não por completo. O snapshot inclui banco e volumes como pub/media e app/etc, mas não o código e não pode ser baixado; o snapshot manual fica guardado por sete dias. A Adobe também avisa que o snapshot de recuperação de desastre não substitui o backup que a loja deve fazer antes de um upgrade.

O backup da hospedagem cobre a loja Magento?

Depende do serviço contratado. Pergunte por escrito se o banco é copiado de forma consistente, se pub/media e app/etc entram, onde a cópia fica guardada, por quantos dias e quem faz a restauração. Sem essas respostas, trate o backup da hospedagem como complemento, e não como a cópia principal.

Fontes oficiais

  1. Backup and rollback the file system, media, and database (Adobe Experience League)
  2. Encryption key (Adobe Experience League)
  3. Configuration files for deployment (Adobe Experience League)
  4. Backup management (snapshots) (Adobe Experience League)
  5. Backup (snapshot) on Cloud: FAQ (Adobe Experience League)
  6. Authentication for privately hosted packages and repositories (Composer)

Outros artigos

Ver todos os artigos

Precisa de um orçamento? Ficarei feliz em ajudar. Clique aqui