{"id":840915,"date":"2026-08-18T12:41:53","date_gmt":"2026-08-18T12:41:53","guid":{"rendered":"https:\/\/www.knowband.com\/blog\/?p=840852\/"},"modified":"2026-08-22T06:12:19","modified_gmt":"2026-08-22T06:12:19","slug":"managing-database-changes-during-module-updates-prestashop","status":"publish","type":"post","link":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/","title":{"rendered":"Gerenciando altera\u00e7\u00f5es no banco de dados durante atualiza\u00e7\u00f5es de m\u00f3dulos no PrestaShop"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Existe um tipo espec\u00edfico de chamado de suporte que aprendi a temer. Um lojista atualiza um m\u00f3dulo; a atualiza\u00e7\u00e3o parece ser conclu\u00edda com sucesso, mas ent\u00e3o algo para de funcionar. Nunca a loja inteira. Pode ser uma p\u00e1gina espec\u00edfica do controlador do PrestaShop com comportamento inadequado, ou um valor de configura\u00e7\u00e3o que se recusa a salvar, ou uma coluna de listagem que se esvazia sozinha. Quando verifico, o c\u00f3digo do m\u00f3dulo est\u00e1 na nova vers\u00e3o, mas o banco de dados subjacente ainda est\u00e1 na vers\u00e3o antiga.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00c9 exatamente essa lacuna que este artigo aborda. Um m\u00f3dulo do PrestaShop n\u00e3o \u00e9 apenas o c\u00f3digo PHP que voc\u00ea enviou, mas sim esse c\u00f3digo PHP acrescido das tabelas e colunas que o PHP espera encontrar. Se voc\u00ea ignorar a atualiza\u00e7\u00e3o do banco de dados do PrestaShop que deve ser inclu\u00edda em uma nova vers\u00e3o do c\u00f3digo, o resultado ser\u00e1 um m\u00f3dulo instalado, aparentemente funcionando, mas com problemas ocultos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Eu j\u00e1 fiz isso comigo mais de uma vez. O que se segue \u00e9 o que aprendi sobre <\/span><b>Atualiza\u00e7\u00f5es do banco de dados de m\u00f3dulos do PrestaShop<\/b><span style=\"font-weight: 400;\">, da maneira mais dif\u00edcil.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">1.0 Como as atualiza\u00e7\u00f5es de m\u00f3dulos do PrestaShop realmente lidam com o banco de dados<\/span><\/h2>\n<p>[Caption id = &#8220;attachment_840862&#8221; align = &#8220;aligncenter&#8221; width = &#8220;1237&#8221;]<a href=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/01-upgrade-flow.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-840862\" src=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/01-upgrade-flow.jpg\" alt=\"Diagrama mostrando as atualiza\u00e7\u00f5es do banco de dados do m\u00f3dulo PrestaShop executando tr\u00eas scripts de atualiza\u00e7\u00e3o em sequ\u00eancia, da vers\u00e3o 1.9.0 para a 2.1.0.\" width=\"1237\" height=\"575\" srcset=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/01-upgrade-flow.jpg 1237w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/01-upgrade-flow-300x139.jpg 300w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/01-upgrade-flow-1024x476.jpg 1024w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/01-upgrade-flow-768x357.jpg 768w\" sizes=\"auto, (max-width: 1237px) 100vw, 1237px\" \/><\/a> A atualiza\u00e7\u00e3o da loja, da vers\u00e3o 1.9.0 para a 2.1.0, n\u00e3o pula etapas, ela executa todos os scripts de atualiza\u00e7\u00e3o intermedi\u00e1rios, em ordem.<\/p>\n<p><span style=\"font-weight: 400;\">Circulam muitas suposi\u00e7\u00f5es por aqui, e algumas est\u00e3o erradas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Adicione uma nova vers\u00e3o ao seu dispositivo. <\/span><span style=\"font-weight: 400;\">\/m\u00f3dulos\/<\/span><span style=\"font-weight: 400;\"> e sua rotina de instala\u00e7\u00e3o n\u00e3o \u00e9 executada novamente. As tabelas permanecem intactas. O que acontece em vez disso: o PrestaShop l\u00ea o m\u00f3dulo. <\/span><span style=\"font-weight: 400;\">Melhorar\/<\/span><span style=\"font-weight: 400;\"> pasta, encontra os arquivos com o nome <\/span><span style=\"font-weight: 400;\">atualizar- .php<\/span><span style=\"font-weight: 400;\"> O programa fica entre a vers\u00e3o gravada e a vers\u00e3o declarada pela sua classe de m\u00f3dulo, executando-as em sequ\u00eancia.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">Uma loja na vers\u00e3o 1.9.0 que recebe a vers\u00e3o 2.1.0 executa tr\u00eas scripts, em sequ\u00eancia.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">Disso decorrem tr\u00eas coisas, e todas as tr\u00eas s\u00e3o importantes para <\/span><b>Altera\u00e7\u00f5es no banco de dados do PrestaShop<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>A vers\u00e3o na tabela `module` \u00e9 a fonte da verdade.<\/b><span style=\"font-weight: 400;\"> N\u00e3o o arquivo no seu arquivo de classe principal. O PrestaShop l\u00ea ambos. Ele utiliza o arquivo gravado, e esse arquivo determina quantos scripts de atualiza\u00e7\u00e3o ser\u00e3o executados.<\/span><\/p>\n<p><b>Seu m\u00e9todo `install()` destina-se apenas a novas instala\u00e7\u00f5es.<\/b><span style=\"font-weight: 400;\"> Digamos que a vers\u00e3o 2.0 precise de uma nova tabela. Coloque-a em <\/span><span style=\"font-weight: 400;\">instalar()<\/span><span style=\"font-weight: 400;\"> E qualquer pessoa que migrar para a vers\u00e3o 2.0 est\u00e1 coberta. A loja que est\u00e1 na vers\u00e3o 1.9 n\u00e3o recebe nada, porque a instala\u00e7\u00e3o foi feita h\u00e1 um ano e nunca mais ser\u00e1 executada.<\/span><\/p>\n<p><b>Uma \u00fanica falha paralisa tudo.<\/b><span style=\"font-weight: 400;\"> Devolu\u00e7\u00e3o<br \/>\n<\/span><span style=\"font-weight: 400;\">falso<\/span><span style=\"font-weight: 400;\"> A partir de uma fun\u00e7\u00e3o de atualiza\u00e7\u00e3o, tr\u00eas coisas acontecem: o PrestaShop para de funcionar, registra qual vers\u00e3o apresentou falha e desativa o m\u00f3dulo. N\u00e3o \u00e9 poss\u00edvel prosseguir para o pr\u00f3ximo script. Isso \u00e9 intencional, embora signifique que uma altera\u00e7\u00e3o de esquema parcialmente aplicada deixe o sistema desativado em vez de completamente inoperante.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">O <\/span><a href=\"https:\/\/devdocs.prestashop-project.org\/8\/modules\/creation\/enabling-auto-update\/\"><span style=\"font-weight: 400;\">Ativar a atualiza\u00e7\u00e3o autom\u00e1tica de m\u00f3dulos<\/span><\/a><span style=\"font-weight: 400;\"> Esta p\u00e1gina define as regras de nomenclatura de arquivos. Leia-a atentamente uma vez, em vez de tentar memoriz\u00e1-la.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">A armadilha de nomenclatura da fun\u00e7\u00e3o de atualiza\u00e7\u00e3o<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Essa me custou uma tarde inteira. Ou&#8230; <\/span><span style=\"font-weight: 400;\">upgrade_module_2_0_1<\/span><span style=\"font-weight: 400;\"> or <\/span><span style=\"font-weight: 400;\">upgradeModule201<\/span><span style=\"font-weight: 400;\"> funciona como um nome de fun\u00e7\u00e3o, e o PrestaShop procura por ambos. O que ele tamb\u00e9m faz, antes de incluir seu arquivo, \u00e9 verificar se um desses nomes j\u00e1 existe. Se encontrar, o arquivo \u00e9 marcado como duplicado e ignorado.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Copiar um script de atualiza\u00e7\u00e3o antigo como modelo \u00e9 exatamente como as pessoas chegam a esse ponto. O nome dentro do script nunca \u00e9 alterado. Nada \u00e9 atualizado e a mensagem de erro n\u00e3o fornece muitas informa\u00e7\u00f5es.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Migra\u00e7\u00e3o de banco de dados do PrestaShop 2.0: o que d\u00e1 errado em lojas reais<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Tudo isso aconteceu em lojas onde eu trabalhava.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Altera\u00e7\u00f5es no esquema do banco de dados do PrestaShop que divergem entre instala\u00e7\u00f5es<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">A vers\u00e3o 2.0 precisa de uma nova coluna, ent\u00e3o voc\u00ea precisa atualiz\u00e1-la. <\/span><span style=\"font-weight: 400;\">instalar()<\/span><span style=\"font-weight: 400;\"> e escrever um script de atualiza\u00e7\u00e3o. Ambos corretos. Tr\u00eas vers\u00f5es depois, algu\u00e9m renomeia a pasta do m\u00f3dulo ou um lojista reinstala. Em algumas instala\u00e7\u00f5es, a fun\u00e7\u00e3o `install()` criou essa coluna. Em outras, o caminho de atualiza\u00e7\u00e3o a criou. Duas defini\u00e7\u00f5es, divergindo, e um \u00fanico n\u00famero de vers\u00e3o agora abrange ambas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Assim, a defini\u00e7\u00e3o reside em um \u00fanico m\u00e9todo que ambos os caminhos chamam. As altera\u00e7\u00f5es no esquema do banco de dados do PrestaShop n\u00e3o podem se propagar se houver apenas um.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Scripts de atualiza\u00e7\u00e3o que partem do princ\u00edpio de que o ponto de partida est\u00e1 limpo.<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">ALTERAR TABELA &#8230; ADICIONAR COLUNA<\/span><span style=\"font-weight: 400;\"> Se uma coluna que j\u00e1 existe gerar um erro, sua fun\u00e7\u00e3o retornar\u00e1 falso e o m\u00f3dulo ser\u00e1 desativado. Interrompa uma atualiza\u00e7\u00e3o anterior, restaure um backup parcial ou sincronize duas vezes a partir do ambiente de teste: qualquer uma dessas situa\u00e7\u00f5es pode causar problemas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Agora, toda altera\u00e7\u00e3o de esquema que eu escrevo passa por uma verifica\u00e7\u00e3o pr\u00e9via. Adicionar uma coluna significa uma <\/span><span style=\"font-weight: 400;\">MOSTRAR COLUNAS<\/span><span style=\"font-weight: 400;\"> Criar uma tabela previamente significa <\/span><span style=\"font-weight: 400;\">MOSTRAR TABELAS<\/span><span style=\"font-weight: 400;\">, um \u00edndice significa <\/span><span style=\"font-weight: 400;\">MOSTRAR \u00cdNDICE<\/span><span style=\"font-weight: 400;\">Algumas linhas, e o script sobrevive a uma segunda execu\u00e7\u00e3o. Isso \u00e9 importante, porque o banco de dados de um desconhecido pode estar em qualquer estado. Existe <\/span><span style=\"font-weight: 400;\">SE N\u00c3O EXISTE<\/span><span style=\"font-weight: 400;\"> em ambos <\/span><a href=\"https:\/\/mariadb.com\/kb\/en\/alter-table\/\"><span style=\"font-weight: 400;\">MySQL e MariaDB<\/span><\/a><span style=\"font-weight: 400;\">, mas apenas em algumas opera\u00e7\u00f5es, ent\u00e3o a verifica\u00e7\u00e3o expl\u00edcita funciona melhor.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Multiloja: linhas de configura\u00e7\u00e3o escritas para apenas uma loja.<\/span><\/h3>\n<p><a href=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/03-multistore-config.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-840864\" src=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/03-multistore-config.jpg\" alt=\"Compara\u00e7\u00e3o de atualiza\u00e7\u00f5es do banco de dados de m\u00f3dulos do PrestaShop, mostrando uma chave de configura\u00e7\u00e3o sem valor padr\u00e3o causando erros no modo de depura\u00e7\u00e3o versus um valor padr\u00e3o definido para cada loja.\" width=\"1234\" height=\"661\" srcset=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/03-multistore-config.jpg 1234w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/03-multistore-config-300x161.jpg 300w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/03-multistore-config-1024x549.jpg 1024w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/03-multistore-config-768x411.jpg 768w\" sizes=\"auto, (max-width: 1234px) 100vw, 1234px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Silencioso e desagrad\u00e1vel, este aqui. Uma configura\u00e7\u00e3o por loja chega na nova vers\u00e3o. A linha padr\u00e3o foi criada pelo script de atualiza\u00e7\u00e3o, testada pelo desenvolvedor, tudo parecendo correto. Mas apenas uma linha foi criada, para a loja em quest\u00e3o, e o comerciante administra quatro lojas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Tr\u00eas lojas agora n\u00e3o t\u00eam essa informa\u00e7\u00e3o. Dependendo de como seu c\u00f3digo interpreta isso, voc\u00ea recebe um aviso do PHP, um valor vazio tratado como uma configura\u00e7\u00e3o real ou um espa\u00e7o em branco onde deveria haver um pre\u00e7o. <\/span><a href=\"https:\/\/devdocs.prestashop-project.org\/8\/modules\/concepts\/multistore\/\"><span style=\"font-weight: 400;\">documenta\u00e7\u00e3o multistore<\/span><\/a><span style=\"font-weight: 400;\"> Abrange as regras de contexto. Percorra cada ID de loja em qualquer atualiza\u00e7\u00e3o que altere a configura\u00e7\u00e3o ou os dados por loja.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">Em uma instala\u00e7\u00e3o de loja \u00fanica, esse bug \u00e9 invis\u00edvel.<\/span><\/i><\/p>\n<h3><span style=\"font-weight: 400;\">ALTER TABLE bloqueia tabelas de cat\u00e1logo grandes<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Adicionar uma coluna a uma tabela com 400,000 linhas n\u00e3o \u00e9 um processo instant\u00e2neo. Dependendo da opera\u00e7\u00e3o, da vers\u00e3o do MySQL e do mecanismo de armazenamento, a tabela inteira pode ser copiada. Em uma loja online em funcionamento, durante o hor\u00e1rio de negocia\u00e7\u00e3o, esse bloqueio dura tempo suficiente para que os clientes percebam.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Por isso, verifico o tamanho da tabela antes de escrever a migra\u00e7\u00e3o. Se for grande: janela de manuten\u00e7\u00e3o ou reestrutura\u00e7\u00e3o para evitar a reconstru\u00e7\u00e3o.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">A chave de configura\u00e7\u00e3o sem valor padr\u00e3o.<\/span><\/h3>\n<p><a href=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/02-config-default.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-840863\" src=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/02-config-default.jpg\" alt=\"Compara\u00e7\u00e3o de c\u00f3digo mostrando uma verifica\u00e7\u00e3o de esquema PrestaShop n\u00e3o protegida versus protegida.\" width=\"1237\" height=\"645\" srcset=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/02-config-default.jpg 1237w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/02-config-default-300x156.jpg 300w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/02-config-default-1024x534.jpg 1024w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/02-config-default-768x400.jpg 768w\" sizes=\"auto, (max-width: 1237px) 100vw, 1237px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Aquele que vejo com mais frequ\u00eancia nos m\u00f3dulos de outras pessoas, e que n\u00e3o envolve nenhuma tabela.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Voc\u00ea adiciona uma configura\u00e7\u00e3o na nova vers\u00e3o. O formul\u00e1rio de administra\u00e7\u00e3o a l\u00ea. O mesmo acontece com o controlador frontal. Ambos foram escritos em uma m\u00e1quina onde a p\u00e1gina de configura\u00e7\u00f5es j\u00e1 havia sido salva pelo menos uma vez. Portanto, a chave existe e tudo parece correto. Publique isso e todas as instala\u00e7\u00f5es existentes estar\u00e3o lendo a mesma configura\u00e7\u00e3o. <\/span><span style=\"font-weight: 400;\">Configura\u00e7\u00e3o<\/span><span style=\"font-weight: 400;\"> chave que ningu\u00e9m jamais escreveu.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">O que retorna \u00e9 <\/span><span style=\"font-weight: 400;\">falso<\/span><span style=\"font-weight: 400;\">Seu valor padr\u00e3o nunca aparece, nem mesmo uma string vazia que voc\u00ea poderia ao menos testar. A partir da\u00ed, ele \u00e9 usado como um n\u00famero ou passado para uma fun\u00e7\u00e3o que esperava uma string. Com o modo de depura\u00e7\u00e3o desativado, muitas vezes voc\u00ea consegue passar despercebido: o lojista v\u00ea uma p\u00e1gina ligeiramente incorreta e n\u00e3o se importa. Com o modo de depura\u00e7\u00e3o ativado, o problema aparece como um aviso ou um erro de tipo. \u00c9 assim que voc\u00ea recebe a mensagem &#8220;o m\u00f3dulo apresenta problemas no modo de depura\u00e7\u00e3o&#8221;, quando, na verdade, o modo de depura\u00e7\u00e3o \u00e9 o \u00fanico respons\u00e1vel.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">O mesmo c\u00f3digo, com e sem o valor padr\u00e3o escrito.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">A solu\u00e7\u00e3o \u00e9 tediosa. Cada nova chave de configura\u00e7\u00e3o recebe seu valor padr\u00e3o no script de atualiza\u00e7\u00e3o, para cada loja, e \u00e9 distribu\u00edda junto com o c\u00f3digo que a l\u00ea. Leia-o com cautela, pois n\u00e3o h\u00e1 como garantir que a atualiza\u00e7\u00e3o foi executada corretamente.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Migra\u00e7\u00e3o de banco de dados de m\u00f3dulo PrestaShop versus altera\u00e7\u00e3o de esquema<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">As altera\u00e7\u00f5es de esquema s\u00e3o a metade f\u00e1cil. A metade dif\u00edcil \u00e9 quando o significado dos dados existentes muda: dividir uma coluna em duas, mover um campo CSV para uma tabela relacionada, recodificar um status.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00c9 a\u00ed que tenho visto os maiores danos. Um trabalho malfeito. <\/span><span style=\"font-weight: 400;\">ALTERAR A TABELA<\/span><span style=\"font-weight: 400;\"> Falha de forma flagrante; uma transforma\u00e7\u00e3o de dados malfeita \u00e9 bem-sucedida e gera resultados sem sentido. Uma migra\u00e7\u00e3o de banco de dados de um m\u00f3dulo do PrestaShop que move dados precisa de uma contagem antes e depois, para ent\u00e3o compar\u00e1-las. \u00c9 melhor encontrar essa informa\u00e7\u00e3o no script de atualiza\u00e7\u00e3o do que descobrir com um lojista tr\u00eas semanas depois.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Pr\u00e1ticas recomendadas para atualiza\u00e7\u00e3o de m\u00f3dulos do PrestaShop 3.0 que eu realmente defenderia.<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Aqueles que me salvaram:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Torne cada migra\u00e7\u00e3o idempotente.<\/span><\/h3>\n<p><a href=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/04-idempotent-migration.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-840865\" src=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/04-idempotent-migration.jpg\" alt=\"Atualiza\u00e7\u00f5es do banco de dados do m\u00f3dulo PrestaShop: migra\u00e7\u00e3o que pressup\u00f5e um in\u00edcio limpo versus uma que verifica primeiro\" width=\"1234\" height=\"612\" srcset=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/04-idempotent-migration.jpg 1234w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/04-idempotent-migration-300x149.jpg 300w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/04-idempotent-migration-1024x508.jpg 1024w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/04-idempotent-migration-768x381.jpg 768w\" sizes=\"auto, (max-width: 1234px) 100vw, 1234px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Nada deve mudar na segunda execu\u00e7\u00e3o que a primeira j\u00e1 n\u00e3o tenha tratado. Obtenha essa propriedade e toda uma categoria de problemas de suporte desaparece, porque o estado do banco de dados deixa de ser algo que voc\u00ea precisa estabelecer primeiro. Antes de escrever SQL bruto em tabelas principais, o PrestaShop <\/span><a href=\"https:\/\/devdocs.prestashop-project.org\/8\/development\/database\/\"><span style=\"font-weight: 400;\">notas da camada de banco de dados<\/span><\/a><span style=\"font-weight: 400;\"> valem uma hora.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\">A vers\u00e3o protegida sobrevive a uma segunda execu\u00e7\u00e3o.<\/span><\/i><\/p>\n<h3><span style=\"font-weight: 400;\">Registre cada falha em vez de retornar falso silenciosamente.<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">A nu <\/span><span style=\"font-weight: 400;\">retorna falso<\/span><span style=\"font-weight: 400;\"> Isso \u00e9 suficiente para o PrestaShop parar e desativar o m\u00f3dulo. N\u00e3o \u00e9 suficiente para voc\u00ea. Portanto, proteja o processo. Capture tudo o que sair dele e passe para o PrestaShopLogger com o nome e a vers\u00e3o do m\u00f3dulo anexados. Caso contr\u00e1rio, o lojista relatar\u00e1 uma falha na atualiza\u00e7\u00e3o e voc\u00ea ficar\u00e1 apenas adivinhando.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">No PHP 7 e vers\u00f5es superiores, observe. <\/span><span style=\"font-weight: 400;\">erro<\/span><span style=\"font-weight: 400;\"> anteriormente <\/span><span style=\"font-weight: 400;\">Exce\u00e7\u00e3o<\/span><span style=\"font-weight: 400;\">. Se voc\u00ea receber um erro de tipo no seu pr\u00f3prio c\u00f3digo de migra\u00e7\u00e3o, ele chegar\u00e1 como um <\/span><span style=\"font-weight: 400;\">erro<\/span><span style=\"font-weight: 400;\">, portanto, um manipulador observando apenas por <\/span><span style=\"font-weight: 400;\">Exce\u00e7\u00e3o<\/span><span style=\"font-weight: 400;\"> deixa passar.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Ofere\u00e7a suporte a todas as vers\u00f5es que voc\u00ea j\u00e1 lan\u00e7ou.<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Um lojista pode estar em qualquer vers\u00e3o que voc\u00ea tenha lan\u00e7ado. Algu\u00e9m que atualiza da vers\u00e3o 1.4 para a 3.0 executa todos os scripts intermedi\u00e1rios, em ordem, ent\u00e3o cada um precisa funcionar com o esquema deixado pela vers\u00e3o anterior. \u00c9 por isso que os arquivos de atualiza\u00e7\u00e3o antigos permanecem no m\u00f3dulo. Algu\u00e9m que est\u00e1 dois anos atrasado n\u00e3o tem outra op\u00e7\u00e3o.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Teste em ambiente de teste, n\u00e3o em uma instala\u00e7\u00e3o local limpa.<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Uma instala\u00e7\u00e3o limpa da nova vers\u00e3o n\u00e3o prova nada sobre a atualiza\u00e7\u00e3o. O ideal seria instalar a vers\u00e3o antiga, inserir dados reais e s\u00f3 ent\u00e3o atualizar. Isso tamb\u00e9m vale para lojas com suporte a m\u00faltiplos dispositivos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Melhor ainda: pegue uma c\u00f3pia de uma loja real e fa\u00e7a a atualiza\u00e7\u00e3o por meio dela. Sua instala\u00e7\u00e3o local tem dados limpos e quatro produtos, por isso n\u00e3o detecta nada. Uma loja real cont\u00e9m importa\u00e7\u00f5es incompletas, linhas deixadas por um m\u00f3dulo desinstalado h\u00e1 dois anos, colunas adicionadas manualmente por um desenvolvedor anterior e um cat\u00e1logo grande o suficiente para&#8230; <\/span><span style=\"font-weight: 400;\">ALTERAR A TABELA<\/span><span style=\"font-weight: 400;\"> leva um tempo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Em seguida, vem o momento certo. Uma atualiza\u00e7\u00e3o que requer seis minutos de anteced\u00eancia, com base em dados reais, \u00e9 melhor compreendida durante o agendamento de uma janela de manuten\u00e7\u00e3o do que \u00e0s onze horas de uma sexta-feira.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Fa\u00e7a um backup antes de alterar o esquema e avise-nos.<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Nenhum snapshot das suas tabelas \u00e9 criado antes de uma atualiza\u00e7\u00e3o de m\u00f3dulo. Nem pelo PrestaShop, nem por nenhum outro sistema. Portanto, se o lojista n\u00e3o tiver um backup e a migra\u00e7\u00e3o for interrompida no meio da transforma\u00e7\u00e3o dos dados, esses dados ser\u00e3o perdidos. Informe isso no changelog em vez de deixar que a pessoa descubra o problema por conta pr\u00f3pria.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Recuperando uma atualiza\u00e7\u00e3o de banco de dados PrestaShop com falha<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Uma atualiza\u00e7\u00e3o falhou em uma loja em produ\u00e7\u00e3o; m\u00f3dulo desativado. Aproximadamente nesta ordem:<\/span><\/p>\n<p><b>Descubra qual vers\u00e3o apresentou falha.<\/b><span style=\"font-weight: 400;\"> Isso fica registrado, e se voc\u00ea escreveu uma mensagem de log, ela tamb\u00e9m ficar\u00e1 l\u00e1. Com essas informa\u00e7\u00f5es, voc\u00ea sabe qual script abrir e quais altera\u00e7\u00f5es foram aplicadas antes da interrup\u00e7\u00e3o.<\/span><\/p>\n<p><b>Verifique o esquema real, n\u00e3o o n\u00famero da vers\u00e3o.<\/b><span style=\"font-weight: 400;\"> Todos os <\/span><span style=\"font-weight: 400;\">m\u00f3dulo<\/span><span style=\"font-weight: 400;\"> A tabela cont\u00e9m o que foi gravado na \u00faltima atualiza\u00e7\u00e3o bem-sucedida. As tabelas reais s\u00e3o onde est\u00e1 a resposta, comparadas com o que o script com falha estava tentando fazer.<\/span><\/p>\n<p><b>Corrija para a frente, n\u00e3o para tr\u00e1s.<\/b><span style=\"font-weight: 400;\"> Reverter o n\u00famero da vers\u00e3o \u00e9 tentador, mas geralmente um erro, porque os scripts anteriores j\u00e1 foram executados e execut\u00e1-los novamente em um esquema parcialmente alterado transforma um problema em tr\u00eas. Escreva uma migra\u00e7\u00e3o corretiva do estado atual do esquema para o estado correto.<\/span><\/p>\n<p><b>Em seguida, descubra por que a migra\u00e7\u00e3o n\u00e3o foi idempotente.<\/b><span style=\"font-weight: 400;\"> Esse \u00e9 o verdadeiro problema.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Uma breve lista de verifica\u00e7\u00e3o antes de enviar uma atualiza\u00e7\u00e3o de m\u00f3dulo.<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">A lista que eu executo:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"> Vers\u00e3o da classe principal, a mais alta <\/span><span style=\"font-weight: 400;\">atualiza\u00e7\u00e3o-*.php<\/span><span style=\"font-weight: 400;\"> Arquivo: eles correspondem?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Cada fun\u00e7\u00e3o de atualiza\u00e7\u00e3o recebe o nome da vers\u00e3o do seu respectivo arquivo?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> A cada altera\u00e7\u00e3o de esquema, \u00e9 preciso verificar primeiro se ela j\u00e1 foi aplicada.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Cada configura\u00e7\u00e3o de escrita percorre todas as lojas?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Cada nova chave de configura\u00e7\u00e3o recebe um valor padr\u00e3o para instala\u00e7\u00f5es existentes?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> J\u00e1 se deparou com uma r\u00e9plica de uma loja real?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Vers\u00e3o antiga instalada, dados adicionados e, em seguida, atualizada?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Mesmo caminho em v\u00e1rias lojas?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Algo \u00fatil registrado antes de cada <\/span><span style=\"font-weight: 400;\">retorna falso<\/span><span style=\"font-weight: 400;\">?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Apanhando <\/span><span style=\"font-weight: 400;\">erro<\/span><span style=\"font-weight: 400;\"> anteriormente <\/span><span style=\"font-weight: 400;\">Exce\u00e7\u00e3o<\/span><span style=\"font-weight: 400;\">?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Arquivos de atualiza\u00e7\u00e3o antigos ainda est\u00e3o instalados para comerciantes com v\u00e1rias vers\u00f5es de atraso?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> O changelog est\u00e1 instruindo os comerciantes a fazerem backup?<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Em uma mesa grande, qual \u00e9 o comprimento disso? <\/span><span style=\"font-weight: 400;\">ALTERAR<\/span><span style=\"font-weight: 400;\"> Segurando uma fechadura?<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Os itens 6 e 7 s\u00e3o os que as pessoas geralmente ignoram, e entre eles, elas conseguem capturar a maior parte da informa\u00e7\u00e3o.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Conclus\u00e3o<\/span><\/h2>\n<p><b>Atualiza\u00e7\u00e3o do m\u00f3dulo PrestaShop<\/b><span style=\"font-weight: 400;\"> Os problemas s\u00e3o complicados por um motivo: nada os anuncia. O m\u00f3dulo reporta sua nova vers\u00e3o sem problemas. A p\u00e1gina de administra\u00e7\u00e3o carrega. Nenhum log, a menos que voc\u00ea os tenha criado. Enquanto isso, seu c\u00f3digo espera uma coisa, o banco de dados cont\u00e9m outra, e isso permanece intocado at\u00e9 que algu\u00e9m use a \u00fanica funcionalidade que est\u00e1 no meio do processo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Trate o esquema como parte da vers\u00e3o. Escreva migra\u00e7\u00f5es que sobrevivam a uma segunda execu\u00e7\u00e3o. Registre o que aconteceu. Coloque-o em ambiente de teste antes que qualquer lojista o fa\u00e7a. No lado do framework, o PrestaShop <\/span><a href=\"https:\/\/devdocs.prestashop-project.org\/8\/modules\/creation\/\"><span style=\"font-weight: 400;\">documenta\u00e7\u00e3o de desenvolvimento de m\u00f3dulos<\/span><\/a><span style=\"font-weight: 400;\"> \u00e9 o lugar para come\u00e7ar.<\/span><\/p>\n<p>Se voc\u00ea tiver d\u00favidas ou precisar de ajuda com o desempenho ou a migra\u00e7\u00e3o do seu site, nossos especialistas est\u00e3o \u00e0 disposi\u00e7\u00e3o. Entre em contato com a equipe da Knowband em <a href=\"\/pt\/cdn-cgi\/l\/email-protection#f5868085859a8781b59e9b9a8297949b91db969a98\"><span class=\"__cf_email__\" data-cfemail=\"ee9d9b9e9e819c9aae858081998c8f808ac08d8183\">conveyors.au@prok.com<\/span><\/a> Hoje, voc\u00ea encontra plugins de e-commerce confi\u00e1veis \u200b\u200be personalizados para atender \u00e0s suas necessidades de com\u00e9rcio eletr\u00f4nico.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Existe um tipo espec\u00edfico de chamado de suporte que aprendi a temer. Um lojista atualiza um m\u00f3dulo; a atualiza\u00e7\u00e3o parece ser conclu\u00edda com sucesso, mas ent\u00e3o algo para de funcionar. Nunca a loja inteira. Pode ser uma p\u00e1gina espec\u00edfica do controlador do PrestaShop com comportamento inadequado, ou um valor de configura\u00e7\u00e3o que se recusa a [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":840934,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kbui_enabled":"","footnotes":""},"categories":[3271,3272],"tags":[52481,52486,52484,52482,52480,52479,52485,52483,42564,42412],"class_list":["post-840915","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-prestashop-pt-br","category-prestashop-tutoriais","tag-alteraes-no-banco-de-dados-do-prestashop","tag-alteraes-no-esquema-do-banco-de-dados-do-prestashop","tag-atualizao-do-banco-de-dados-do-prestashop","tag-atualizao-do-mdulo-prestashop","tag-atualizaes-de-mdulos-do-prestashop","tag-atualizaes-do-banco-de-dados-de-mdulos-do-prestashop","tag-melhores-prticas-para-atualizao-de-mdulos-do-prestashop","tag-migrao-de-banco-de-dados-de-mdulos-do-prestashop","tag-migrao-de-banco-de-dados-prestashop","tag-prestashop-database-migration"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Gerenciamento de altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos | PrestaShop<\/title>\n<meta name=\"description\" content=\"Neste guia, voc\u00ea aprender\u00e1 sobre as altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos nas vers\u00f5es 1.7, 8.x e 9.x do PrestaShop, apresentado pela Knowband.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gerenciamento de altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos | PrestaShop\" \/>\n<meta property=\"og:description\" content=\"Neste guia, voc\u00ea aprender\u00e1 sobre as altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos nas vers\u00f5es 1.7, 8.x e 9.x do PrestaShop, apresentado pela Knowband.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/\" \/>\n<meta property=\"og:site_name\" content=\"Knowband Blog | Ecommerce Modules\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Knowband\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-18T12:41:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-22T06:12:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1983\" \/>\n\t<meta property=\"og:image:height\" content=\"793\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Olivia Smith\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@KnowbandPlugin\" \/>\n<meta name=\"twitter:site\" content=\"@KnowbandPlugin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Smith\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/\"},\"author\":{\"name\":\"Olivia Smith\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#\\\/schema\\\/person\\\/d06d387c1a539103dd802941df1953c0\"},\"headline\":\"Gerenciando altera\u00e7\u00f5es no banco de dados durante atualiza\u00e7\u00f5es de m\u00f3dulos no PrestaShop\",\"datePublished\":\"2026-08-18T12:41:53+00:00\",\"dateModified\":\"2026-08-22T06:12:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/\"},\"wordCount\":2746,\"publisher\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png\",\"keywords\":[\"Altera\u00e7\u00f5es no banco de dados do PrestaShop\",\"Altera\u00e7\u00f5es no esquema do banco de dados do PrestaShop\",\"Atualiza\u00e7\u00e3o do banco de dados do PrestaShop\",\"Atualiza\u00e7\u00e3o do m\u00f3dulo PrestaShop\",\"Atualiza\u00e7\u00f5es de m\u00f3dulos do PrestaShop\",\"Atualiza\u00e7\u00f5es do banco de dados de m\u00f3dulos do PrestaShop\",\"Melhores pr\u00e1ticas para atualiza\u00e7\u00e3o de m\u00f3dulos do PrestaShop\",\"Migra\u00e7\u00e3o de banco de dados de m\u00f3dulos do PrestaShop\",\"Migra\u00e7\u00e3o de banco de dados PrestaShop\",\"PrestaShop database migration\"],\"articleSection\":[\"Prestashop\",\"Prestashop Tutoriais\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/\",\"name\":\"Gerenciamento de altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos | PrestaShop\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png\",\"datePublished\":\"2026-08-18T12:41:53+00:00\",\"dateModified\":\"2026-08-22T06:12:19+00:00\",\"description\":\"Neste guia, voc\u00ea aprender\u00e1 sobre as altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos nas vers\u00f5es 1.7, 8.x e 9.x do PrestaShop, apresentado pela Knowband.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png\",\"contentUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png\",\"width\":1983,\"height\":793,\"caption\":\"Gerenciamento de altera\u00e7\u00f5es no banco de dados durante atualiza\u00e7\u00f5es de m\u00f3dulos no PrestaShop\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/prestashop-pt-br\\\/managing-database-changes-during-module-updates-prestashop\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gerenciando altera\u00e7\u00f5es no banco de dados durante atualiza\u00e7\u00f5es de m\u00f3dulos no PrestaShop\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/\",\"name\":\"Knowband Blog | Ecommerce Modules\",\"description\":\"Magento, Prestashop, Opencart, Shopify\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#organization\",\"name\":\"Knowband Blog | Ecommerce Modules\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/09\\\/cropped-knowband_logo-v2.png\",\"contentUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/09\\\/cropped-knowband_logo-v2.png\",\"width\":153,\"height\":61,\"caption\":\"Knowband Blog | Ecommerce Modules\"},\"image\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Knowband\",\"https:\\\/\\\/x.com\\\/KnowbandPlugin\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#\\\/schema\\\/person\\\/d06d387c1a539103dd802941df1953c0\",\"name\":\"Olivia Smith\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/plugins\\\/wp-user-avatar\\\/deprecated\\\/wp-user-avatar\\\/images\\\/wpua-96x96.png\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/plugins\\\/wp-user-avatar\\\/deprecated\\\/wp-user-avatar\\\/images\\\/wpua-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/plugins\\\/wp-user-avatar\\\/deprecated\\\/wp-user-avatar\\\/images\\\/wpua-96x96.png\",\"caption\":\"Olivia Smith\"},\"description\":\"Olivia ist eCommerce-Technikberaterin bei Knowband und unterst\u00fctzt H\u00e4ndler dabei, das Beste aus Plattformen wie PrestaShop, Shopify, Magento, WooCommerce und OpenCart herauszuholen. Ihre Beitr\u00e4ge reichen von der Plugin-Einrichtung \u00fcber die Shop-Anpassung bis hin zu Performance und Fehlerbehebung \u2013 immer mit dem Ziel, Shopbetreibern praktisches, direkt umsetzbares technisches Wissen zu vermitteln. Bei Knowband sind wir Experten der eCommerce-Branche mit Schwerpunkt auf der Entwicklung von Plugins. Mit langj\u00e4hriger Erfahrung bieten wir die besten Plugins f\u00fcr Plattformen wie Magento, PrestaShop, OpenCart und Shopify. Zudem entwickeln und passen wir Module individuell f\u00fcr Websites und Onlineshops an. Unser Team bleibt stets auf dem neuesten Stand der Branchentrends und liefert innovative L\u00f6sungen zur Verbesserung der Funktionalit\u00e4t von eCommerce-Websites. Mit einem kundenorientierten Ansatz ist Knowband ein vertrauensw\u00fcrdiger Partner f\u00fcr eCommerce-Plugin-L\u00f6sungen.\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/pt-br\\\/author\\\/olivia\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gerenciamento de altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos | PrestaShop","description":"Neste guia, voc\u00ea aprender\u00e1 sobre as altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos nas vers\u00f5es 1.7, 8.x e 9.x do PrestaShop, apresentado pela Knowband.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/","og_locale":"pt_BR","og_type":"article","og_title":"Gerenciamento de altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos | PrestaShop","og_description":"Neste guia, voc\u00ea aprender\u00e1 sobre as altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos nas vers\u00f5es 1.7, 8.x e 9.x do PrestaShop, apresentado pela Knowband.","og_url":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/","og_site_name":"Knowband Blog | Ecommerce Modules","article_publisher":"https:\/\/www.facebook.com\/Knowband","article_published_time":"2026-08-18T12:41:53+00:00","article_modified_time":"2026-08-22T06:12:19+00:00","og_image":[{"width":1983,"height":793,"url":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png","type":"image\/png"}],"author":"Olivia Smith","twitter_card":"summary_large_image","twitter_creator":"@KnowbandPlugin","twitter_site":"@KnowbandPlugin","twitter_misc":{"Written by":"Olivia Smith","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/#article","isPartOf":{"@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/"},"author":{"name":"Olivia Smith","@id":"https:\/\/www.knowband.com\/blog\/fr\/#\/schema\/person\/d06d387c1a539103dd802941df1953c0"},"headline":"Gerenciando altera\u00e7\u00f5es no banco de dados durante atualiza\u00e7\u00f5es de m\u00f3dulos no PrestaShop","datePublished":"2026-08-18T12:41:53+00:00","dateModified":"2026-08-22T06:12:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/"},"wordCount":2746,"publisher":{"@id":"https:\/\/www.knowband.com\/blog\/fr\/#organization"},"image":{"@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/#primaryimage"},"thumbnailUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png","keywords":["Altera\u00e7\u00f5es no banco de dados do PrestaShop","Altera\u00e7\u00f5es no esquema do banco de dados do PrestaShop","Atualiza\u00e7\u00e3o do banco de dados do PrestaShop","Atualiza\u00e7\u00e3o do m\u00f3dulo PrestaShop","Atualiza\u00e7\u00f5es de m\u00f3dulos do PrestaShop","Atualiza\u00e7\u00f5es do banco de dados de m\u00f3dulos do PrestaShop","Melhores pr\u00e1ticas para atualiza\u00e7\u00e3o de m\u00f3dulos do PrestaShop","Migra\u00e7\u00e3o de banco de dados de m\u00f3dulos do PrestaShop","Migra\u00e7\u00e3o de banco de dados PrestaShop","PrestaShop database migration"],"articleSection":["Prestashop","Prestashop Tutoriais"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/","url":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/","name":"Gerenciamento de altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos | PrestaShop","isPartOf":{"@id":"https:\/\/www.knowband.com\/blog\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/#primaryimage"},"image":{"@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/#primaryimage"},"thumbnailUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png","datePublished":"2026-08-18T12:41:53+00:00","dateModified":"2026-08-22T06:12:19+00:00","description":"Neste guia, voc\u00ea aprender\u00e1 sobre as altera\u00e7\u00f5es no banco de dados durante a atualiza\u00e7\u00e3o de m\u00f3dulos nas vers\u00f5es 1.7, 8.x e 9.x do PrestaShop, apresentado pela Knowband.","breadcrumb":{"@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/#primaryimage","url":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png","contentUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-22-2026-11_41_09-AM.png","width":1983,"height":793,"caption":"Gerenciamento de altera\u00e7\u00f5es no banco de dados durante atualiza\u00e7\u00f5es de m\u00f3dulos no PrestaShop"},{"@type":"BreadcrumbList","@id":"https:\/\/www.knowband.com\/blog\/pt-br\/prestashop-pt-br\/managing-database-changes-during-module-updates-prestashop\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.knowband.com\/blog\/fr\/"},{"@type":"ListItem","position":2,"name":"Gerenciando altera\u00e7\u00f5es no banco de dados durante atualiza\u00e7\u00f5es de m\u00f3dulos no PrestaShop"}]},{"@type":"WebSite","@id":"https:\/\/www.knowband.com\/blog\/fr\/#website","url":"https:\/\/www.knowband.com\/blog\/fr\/","name":"Knowband Blog | Ecommerce Modules","description":"Magento, Prestashop, Opencart, Shopify","publisher":{"@id":"https:\/\/www.knowband.com\/blog\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.knowband.com\/blog\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.knowband.com\/blog\/fr\/#organization","name":"Knowband Blog | Ecommerce Modules","url":"https:\/\/www.knowband.com\/blog\/fr\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.knowband.com\/blog\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2016\/09\/cropped-knowband_logo-v2.png","contentUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2016\/09\/cropped-knowband_logo-v2.png","width":153,"height":61,"caption":"Knowband Blog | Ecommerce Modules"},"image":{"@id":"https:\/\/www.knowband.com\/blog\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Knowband","https:\/\/x.com\/KnowbandPlugin"]},{"@type":"Person","@id":"https:\/\/www.knowband.com\/blog\/fr\/#\/schema\/person\/d06d387c1a539103dd802941df1953c0","name":"Olivia Smith","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.knowband.com\/blog\/wp-content\/plugins\/wp-user-avatar\/deprecated\/wp-user-avatar\/images\/wpua-96x96.png","url":"https:\/\/www.knowband.com\/blog\/wp-content\/plugins\/wp-user-avatar\/deprecated\/wp-user-avatar\/images\/wpua-96x96.png","contentUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/plugins\/wp-user-avatar\/deprecated\/wp-user-avatar\/images\/wpua-96x96.png","caption":"Olivia Smith"},"description":"Olivia ist eCommerce-Technikberaterin bei Knowband und unterst\u00fctzt H\u00e4ndler dabei, das Beste aus Plattformen wie PrestaShop, Shopify, Magento, WooCommerce und OpenCart herauszuholen. Ihre Beitr\u00e4ge reichen von der Plugin-Einrichtung \u00fcber die Shop-Anpassung bis hin zu Performance und Fehlerbehebung \u2013 immer mit dem Ziel, Shopbetreibern praktisches, direkt umsetzbares technisches Wissen zu vermitteln. Bei Knowband sind wir Experten der eCommerce-Branche mit Schwerpunkt auf der Entwicklung von Plugins. Mit langj\u00e4hriger Erfahrung bieten wir die besten Plugins f\u00fcr Plattformen wie Magento, PrestaShop, OpenCart und Shopify. Zudem entwickeln und passen wir Module individuell f\u00fcr Websites und Onlineshops an. Unser Team bleibt stets auf dem neuesten Stand der Branchentrends und liefert innovative L\u00f6sungen zur Verbesserung der Funktionalit\u00e4t von eCommerce-Websites. Mit einem kundenorientierten Ansatz ist Knowband ein vertrauensw\u00fcrdiger Partner f\u00fcr eCommerce-Plugin-L\u00f6sungen.","url":"https:\/\/www.knowband.com\/blog\/pt-br\/author\/olivia\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/posts\/840915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/comments?post=840915"}],"version-history":[{"count":1,"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/posts\/840915\/revisions"}],"predecessor-version":[{"id":840935,"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/posts\/840915\/revisions\/840935"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/media\/840934"}],"wp:attachment":[{"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/media?parent=840915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/categories?post=840915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/pt-br\/wp-json\/wp\/v2\/tags?post=840915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}