Jump to content

Backup apenas do catálogo de produtos.


Recommended Posts

Bom dia!

 

Eu estou com um problema. Eu preciso fazer um backup de uma loja feita em Prestashop, porém eu quero fazer backup apenas dos produtos (incluindo: categorias, atributos, características, fornecedores, fabricantes, tags, imagens e anexos). Não quero dados de clientes, módulos, configuração ou qualquer outra coisa. Apenas os produtos e suas informações relacionadas que são cadastradas através do back office.

 

Alguém já teve essa necessidade? Se sim, como procedeu?

 

Se alguém souber a relação de tabelas da base de dados MySQL que vai conter tudo que eu preciso, já ajuda muito. Imaginei que se eu fizesse um dump dessas tabelas já teria o que eu preciso.

 

Outra dúvida... Os arquivos de imagens de produtos ficam sempre no diretório /img?

 

Eu acho que uma ferramenta nativa no Prestashop de backup de dados selecionados é uma boa ideia. Por exemplo, o lojista precisa pegar apenas a lista de clientes. Outro exemplo, o lojista precisa pegar apenas a lista de categorias ou produtos. O que vocês acham?

 

Agradeço desde já.

 

Abraços!

Link to comment
Share on other sites

selectshop.at, obrigado pela resposta.

 

Pois é, eu já percebi isso também. Eu vou fazer uns testes e tentar descobrir quais a tabelas que contem apenas as informações que eu preciso. Com essa relação de nomes de tabelas, eu posso fazer um script de "dump inteligente".

 

O problema de fazer backup de tudo é que existe muito dado lixo devido a alguns módulos.

 

Se eu conseguir algum resultado, irei publicar aqui.

 

Se alguém souber de mais alguma coisa, por favor compartilhe.

 

Abraços.

Link to comment
Share on other sites

Melhor deixar. Nao aconselho vc. fucar no banco de dados, sem conhecer as dependencias que Prestashop escreve. Somente aconselho pessoas com conhecimentos proficientes do Prestashop de fazer um split de tabelas.

 

Eu as concheco, mas por serem muitas e ainda dependerem da configuracao da loja (combinacoes nos produtos sim ou nao, features, multilojas, tags, etc, etc, etc.) nao vou lhe escrever quais, por nao conhecer a sua configuracao. Em geral eu aceito isto como servico pago, pois é um trabalho de meia a uma hora, dependendo da configuracao da sua loja.

 

Melhor mesmo é backupear tudo e depois deletar os seus clientes (mais fácil, mais rápido e mais eficiente).

Link to comment
Share on other sites

Melhor deixar. Nao aconselho vc. fucar no banco de dados, sem conhecer as dependencias que Prestashop escreve. Somente aconselho pessoas com conhecimentos proficientes do Prestashop de fazer um split de tabelas.

 

Eu as concheco, mas por serem muitas e ainda dependerem da configuracao da loja (combinacoes nos produtos sim ou nao, features, multilojas, tags, etc, etc, etc.) nao vou lhe escrever quais, por nao conhecer a sua configuracao. Em geral eu aceito isto como servico pago, pois é um trabalho de meia a uma hora, dependendo da configuracao da sua loja.

 

Melhor mesmo é backupear tudo e depois deletar os seus clientes (mais fácil, mais rápido e mais eficiente).

 

 

Então, como já disse, para mim isso não resolve. Não tenho muita experiência com o core ou a modelagem do Prestashop especificamente, mas sou desenvolver web e trabalho com Python e PHP. Vou fazer uns teste e ver se consigo o que eu quero. Se tudo der certo, estou pensando até em empacotar um módulo que faça exatamente isso. Até onde vi, apesar de ser grande, a estrutura da base de dados do Prestashop é bem construída e organizada. Qualquer novidade, eu publico aqui.

 

Obrigado

Link to comment
Share on other sites

Módulos bem codados criam tabelas com o nome do módulo. Estas tabelas vc. pode excluir. Módulos que influenciam na compra, podem criar "rows" em tabelas do core. Fica muito difícil. Mesmo desininstalando estes dados podem ficar e nao se apagar. Somente conhecendo mesmo a estrutura exata e também os módulos que se instalou é que vc. vai limpar o banco de dados.

 

Já existe um módulo que limpa. O PS Cleaner (limpador do Prestashop), mas este vc. deverá usar com cautela.

PS cleaner - módulo nativo que vc. vai encontrar no seu back-office. Se nao entao foi retirado por questao de seguranca - mesmo este módulo nativo tinha erros e deletava mais do que deveria , por isto retiraram, mas após debugarem, voltou a fazer parte dos módulos nativos. Se vc. nao encontrar o módulo no seu back-office na lista de módulos entao pode adquirir aqui: https://github.com/PrestaShop/pscleaner

Delete orders:https://www.prestashop.com/forums/topic/69593-module-delete-orders-v20-ps-1216/

 

Creio que com estes dois módulos vc. poderá limpar o banco de dados da maneira que quiser antes de fazer um back-up.

 

Eu prefiro analisar a loja mesmo e depois deletar tudo manualmente. Isto garante mesmo um banco de dados limpo sem remanescentes mesmo. Como lhe disse tudo depende da configuracao da loja, isto significa, que quanto mais features o usuário ativa quanto mais tabelas serao preenchidas. PS é organizado sim, mas deve-se ter conhecimento também de TODOS os features e dependencias que se criam quando ativado (multilojas e multi-idiomas é que complicam a vida neste caso com muitos if).

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Esse é o módulo que pode-se usar para remover os dados de teste que são inseridos na instalação do Prestashop? Se sim, eu conheço ele e é bem interessante.

 

A minha ideia mesmo é pegar apenas a estrutura do cadastro que envolvam o catálogo de produtos nativo do Prestashop. Qualquer informação de módulos externos deveriam ser desconsideradas no meu backup. É como se eu desaclopasse o catálogo nativo do Prestashop e fizesse um backup. Ainda não tive tempo se trabalhar nisso, mas acredito que conhecendo melhor a estrutura das tabelas isso seja possível com um dump esperto na base de dados.

Link to comment
Share on other sites

Nao somente teste. sao todos mesmo. Se vc. nao quiser os modelos o Prestashop oferece na instalacao uma versao limpa, ou seja vc. pode escolher se instala os modelos ou nao.

 

A sua idéia em geral deve funcionar, mas deixa muitos remanescentes no banco de dados e módulos que se escrevam em tabelas e com overrides e depois nao mais serao usados podem cirar além de furos no banco também inúmeros erros.

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Eu acho que se eu extrair apenas o que é nativo do catálogo do Prestashop, conseguirei atingir com perfeição o objetivo.

 

Se eu não quero fazer backup de dados associados a módulos de terceiros mesmo estando relacionados com o catálogo, obviamente também não vou querer garantir a funcionalidade desses módulos. O que eu quero garantir é apenas o catálogo nativo do Prestashop.

 

Pensa em um exemplo. Eu tenho uma loja cheia de módulos de terceiros e com um catálogo cadastrado. Eu ia utilizar minha ferramenta, remover os catalogo com apenas as informações nativas do Prestashop e desconsiderando qualquer dados de módulo de terceiro. Eu queto garantir que esse backup de catálogo funcione 100% se eu inserir ele em uma segunda loja Prestashop crua (sem módulos extras).

 

Eu imagino minha ideia falhando se existir algum módulo de terceiro que se atreva a alterar a estrutura de uma das tabelas nativas do Prestashop. Se existir um módulo assim, creio eu que foi mal construído pois ele comprometeu gravemente a manutenção da loja como um todo.

Link to comment
Share on other sites

E como é que vc. sabe o que é nativo ? Algumas coisas somente se ativam/instalam quando ativados ! Creio que fica muito difícil achar uma solucao que caiba para todos. No entanto good luck.

 

Nao, nao existe nenhum módulo assim, é trabalho manual mesmo. O PSCleaner e o delete orders devem ambos em conjunto limpar o banco da maneira que vc. quiser, deixando possíveis remanescentes de módulos extras instalados.  A melhor maneira de vc. limpar o su projeto é ir

 

1) desinstalando todos os módulos nao nativos (vc. tem como filtrar na lista de módulos), na esperanca que nao sejam módulos grátis mal codados e se desinstalem mesmo.

2) limpar pedidos e restos que vc. quiser com o PSCleaner e o delete orders para depois

3) fazer o back-up deste banco de dados "limpo"

Edited by selectshop.at (see edit history)
  • Like 1
Link to comment
Share on other sites

No mercado já existem várias solucoes para exportar dados. Sao módulos de compra com exportacao customizada ou até tutorias SQL-queries grátis na seccao do fórum Inglês e Alemao

 

Um addon gratuíto (30 dias) também inclui dump customizado: http://addons.prestashop.com/en/administration-tools-prestashop-modules/2937-store-manager-for-prestashop.html. É só conhecer um pouco a estrutura de dados e fica fácil também para back-up aonde se pode escolher as tabelas, fazendo dumps selecionados

 

Além do mais no back-office do Prestashop existe o SQL-Manager com o qual vc. pode executar qualquer SQL-query.

Link to comment
Share on other sites

Acredito que os dados de módulos não nativos no core não são muitos, nem prejudicam o funcionamento de um restore, desde que o DUMP tenha um "DROP TABLE IF EXISTS" para cada tabela.

Eventualmente se criam alguns campos nas tabelas do produto (_PREFIX_.'product*), pedido (_PREFIX_.'order*), do cliente (_PREFIX_.'customer*) ou do endereço (_PREFIX_.'address*) .

 

Eu já fiz isso algumas vezes manualmente, mas não recomendo não... Dá muito trabalho.

Principalmente para vincular as dependências entre essas tabelas citadas.

 

Seria uma boa ter isso automatizado.

 

[EDITADO]

Se bem que no seu caso é apenas o catálogo. Não envolve clientes, pedidos, transportadoras, etc...

É mais fácil.

 

Boa sorte!

Link to comment
Share on other sites

selectshop.at, não entendi a sua dúvida em saber o que é nativo. Isso é justamente meu dilema atual, saber quais das tabelas são as necessárias para o o catálogo "nativo" (sem módulos externos) funcionar. Essa informação eu vou descobrir lendo a documentação e fazendo testes. A princípio imaginei que alguém aqui tivesse tido no passado a mesma necessidade, mas pelo jeito não.

 

Você não conseguiu visualizar o cenário do meu problema direito, se não entenderia o porque o PSCleaner não é o ideal.

 

Daniel, com certeza isso é algo chato de fazer. Por isso, se eu tiver que fazer já vou me preocupar em automatizar em programa ou mesmo em módulo para Prestashop. Imagino que eventualmente possa ser útil para outras pessoas no futuro. Vou vender por uns 500 dólares rsrs

Link to comment
Share on other sites

O Daniel já respondeu em partes, mas como também ele escreveu. manualmente é melhor, um bocado de trabalho e é necessário vc. conhecer todas as denpendencias do Prestashop, que sao muitas.

 

Em base sao estas, mas muito mais quando se utiliza tags, combinacoes e associacoes:

 

produto (_PREFIX_.'product*), pedido (_PREFIX_.'order*), do cliente (_PREFIX_.'customer*) ou do endereço (_PREFIX_.'address*) .

 

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Eu sei disso, por isto é que escrevi que fica muito difícil vc. criar um módulo que caiba para tudo (sao muitas condicoes if que vai ter que consultar). Melhor fazer manualmente mesmo conhecendo primeiro o conteúdo e a configuracao da loja. Além de ser possível vc. transfereir tabelas de um banco para outro diretamente sem dump em um passo só. Outro problema é que as versoes Prestashop diferenciam e uma versao PS 1.56. nao tem as mesmas tabelas do que PS 1.6. (estou falando agora das nativas !). Até entre versoes PS 1.6.X podem existir diferencas....

 

Para conhecer melhor o banco de dados, vc. deverá dar uma olhada no schema/architetura de dados:  http://doc.prestashop.com/download/attachments/21463263/mpd16-mini.png?version=1&modificationDate=1411047534000&api=v2

 

ou na documentacao de desenvolvedores: http://doc.prestashop.com/display/PS16/Fundamentals+of+PrestaShop+Development

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

selectshop.at, isso é vdd.

 

Se eu fizesse um módulo, ele funcionaria apenas enquanto a modelagem de dados não tiver sido alterada entre as versões. Mas de eu empacotar algo compatível com 1.6.x já é o suficiente.

 

Qual foi a última vez que alteraram o modelo de dados? Imago que não deve ter alterações dentro de 1.6.X, ou teve?

 

Se a modelagem do Prestshop mudar com tanta freqüência assim, isso explica pq ele tem tanto problema de incompatibilidade com ferramentas de terceiros. Rsrsrsrs

Link to comment
Share on other sites

 

Se a modelagem do Prestshop mudar com tanta freqüência assim, isso explica pq ele tem tanto problema de incompatibilidade com ferramentas de terceiros. Rsrsrsrs

Depende da ferramenta. Eu uso o Presta Store Manager já faz anos, mas este nao usa os scripts do Prestashop, ele connecta com scripts próprios ao banco de dados. Até agora somente uma vez é que deu problemas com as combinacoes de produtos, pois mudaram a lógica. Mas isto foi um problema em cinco anos. O Prestashop muda frequentemente os scripts, mas a lógica raramente somente pulo de versoes é que podem conter coisas novas que ficam a serem incluídas. Vc. conchecendo bem o banco e as dependências pode trabalhar com as mesmas tranquilo, até sem dump.

Link to comment
Share on other sites

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...