Saber quando salvar ou remover dados
A Adobe recomenda que você determine primeiro se precisa salvar esses dados. Se você estiver movendo dados de um sistema herdado, os dados que você puder remover economizarão tempo e esforço durante a migração. (Há maneiras de arquivar dados se eles precisarem ser acessados posteriormente.) Para ser um bom administrador do aplicativo e do desempenho, não há problema em desafiar uma solicitação para salvar dados adicionais. Seu objetivo é garantir que salvar os dados seja um requisito para atender a uma necessidade comercial que não pode ser atendida de outra maneira.
Dados herdados
Se o seu projeto contiver dados herdados, como pedidos antigos ou registros de clientes, considere um método de pesquisa alternativo. Por exemplo, se a empresa requer acesso aos dados apenas para referência ocasional, considere implementar uma pesquisa externa do banco de dados antigo hospedado fora da plataforma de comércio em vez de migrar dados antigos para Adobe Commerce.
Essa situação exigiria que o banco de dados fosse migrado para um servidor, oferecendo uma interface da Web para ler os dados ou talvez treinamento no uso do MySQL Workbench ou de ferramentas semelhantes. A exclusão desses dados do novo banco de dados agiliza a migração permitindo que a equipe de desenvolvimento se concentre no novo site em vez de solucionar problemas de migração de dados.
Outra opção relacionada para manter os dados externos para o comércio, mas permitir que você os use em tempo real, seria aproveitar outras ferramentas, como o GraphQL mesh. Essa opção combina diferentes fontes de dados e as retorna como uma única resposta.
Por exemplo, você pode stitch
agrupar pedidos antigos de um banco de dados externo, talvez do antigo site Magento 1 que está desativado. Em seguida, usando a malha do GraphQL, mostre-as como parte do histórico de pedidos dos clientes. Esses pedidos antigos podem ser combinados com os pedidos do seu ambiente Adobe Commerce atual.
Para obter mais informações sobre como usar a malha de API com o GraphQL, consulte O que é malha de API) e Gateway do GraphQL Mesh.
Migrar dados herdados com atributos de extensão
Se você determinar que os dados herdados exigem migração ou que os novos dados precisam ser salvos em Adobe Commerce, a Adobe recomenda o uso de atributos de extensão. A utilização de atributos de extensão para salvar dados adicionais oferece as seguintes vantagens:
- Você pode controlar os dados que estão sendo mantidos e a estrutura do banco de dados, o que garante que os dados sejam salvos com o tipo de coluna correto e índices adequados.
- A maioria das entidades em Adobe Commerce dá suporte ao uso de atributos de extensão.
- Os atributos de extensão são um mecanismo agnóstico em armazenamento que oferece flexibilidade para salvar os dados no local ideal para o seu projeto.
Dois exemplos de locais de armazenamento são tabelas de banco de dados e Redis. Os principais aspectos a serem considerados ao escolher um local são se o local apresenta complexidade extra ou se afeta o desempenho.
Considere outras alternativas
Como desenvolvedor, é vital sempre considerar o uso de ferramentas fora do seu ambiente Adobe Commerce, como GraphQL mesh e Adobe App Builder. Essas ferramentas podem ajudar você a reter o acesso aos dados, mas não têm impacto no aplicativo principal de comércio ou em suas tabelas de banco de dados subjacentes. Com essa abordagem, você expõe seus dados por meio de uma API. Em seguida, adicione uma fonte de dados à configuração do App Builder. Usando o GraphQL Mesh, você pode combinar essas fontes de dados e produzir uma única resposta, como mencionado em dados herdados.
Para obter detalhes adicionais sobre a malha do GraphQL, consulte Gateway do GraphQL Mesh. Para obter informações sobre o Adobe App Builder, consulte Introdução ao App Builder.
Modificação de uma tabela principal ou de terceiros
Se você decidir armazenar dados modificando uma tabela de banco de dados principal Adobe Commerce ou de módulo de terceiros, use as diretrizes a seguir para minimizar o impacto na estabilidade e no desempenho.
- Adicionar somente novas colunas.
- Nunca modifique o valor type de uma coluna existente. Por exemplo, não altere uma
integer
para umavarchar
para atender ao seu caso de uso exclusivo. - Evite adicionar colunas às tabelas de atributos EAV. Essas tabelas já estão sobrecarregadas de lógica e responsabilidade.
- Antes de ajustar uma tabela, determine seu tamanho. A alteração de tabelas grandes afeta a implantação, o que pode causar minutos ou horas de atraso quando as alterações são aplicadas.
Práticas recomendadas para modificar uma tabela de banco de dados externa
O Adobe recomenda seguir estas etapas quando você adiciona uma coluna a uma tabela do banco de dados principal ou a uma tabela de terceiros:
-
Crie um módulo com um nome no namespace que represente o que você está atualizando.
Por exemplo:
app/code/YourCompany/Customer
-
Crie os arquivos apropriados para habilitar o módulo (consulte Criar um módulo.
-
Crie um arquivo chamado
db_schema.xml
na pastaetc
e faça as alterações apropriadas.Se aplicável, gere um arquivo
db_schema_whitelist.json
. Consulte Esquema Declarativo para obter mais informações.