Atualmente, estou fazendo muitos testes no Magento para que eu possa me familiarizar com ele. Infelizmente, o banco de dados está extremamente confuso com meus testes. Desejo limpar o banco de dados para poder começar de novo. Isso significa fazer o seguinte:
- Limpando todos os produtos
- Limpando todos os atributos
- Limpando todos os conjuntos de atributos
- Limpando todas as categorias
- Limpando todos os pedidos, remessas, transações etc.
Eu encontrei uma postagem nos fóruns do Magento para limpar os produtos, que é o seguinte SQL:
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `catalog_product_bundle_option`;
TRUNCATE TABLE `catalog_product_bundle_option_value`;
TRUNCATE TABLE `catalog_product_bundle_selection`;
TRUNCATE TABLE `catalog_product_entity_datetime`;
TRUNCATE TABLE `catalog_product_entity_decimal`;
TRUNCATE TABLE `catalog_product_entity_gallery`;
TRUNCATE TABLE `catalog_product_entity_int`;
TRUNCATE TABLE `catalog_product_entity_media_gallery`;
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`;
TRUNCATE TABLE `catalog_product_entity_text`;
TRUNCATE TABLE `catalog_product_entity_tier_price`;
TRUNCATE TABLE `catalog_product_entity_varchar`;
TRUNCATE TABLE `catalog_product_flat_1`;
TRUNCATE TABLE `catalog_product_link`;
TRUNCATE TABLE `catalog_product_link_attribute`;
TRUNCATE TABLE `catalog_product_link_attribute_decimal`;
TRUNCATE TABLE `catalog_product_link_attribute_int`;
TRUNCATE TABLE `catalog_product_link_attribute_varchar`;
TRUNCATE TABLE `catalog_product_link_type`;
TRUNCATE TABLE `catalog_product_option`;
TRUNCATE TABLE `catalog_product_option_price`;
TRUNCATE TABLE `catalog_product_option_title`;
TRUNCATE TABLE `catalog_product_option_type_price`;
TRUNCATE TABLE `catalog_product_option_type_title`;
TRUNCATE TABLE `catalog_product_option_type_value`;
TRUNCATE TABLE `catalog_product_super_attribute_label`;
TRUNCATE TABLE `catalog_product_super_attribute_pricing`;
TRUNCATE TABLE `catalog_product_super_attribute`;
TRUNCATE TABLE `catalog_product_super_link`;
TRUNCATE TABLE `catalog_product_enabled_index`;
TRUNCATE TABLE `catalog_product_website`;
TRUNCATE TABLE `catalog_product_relation`;
TRUNCATE TABLE `catalog_category_product_index`;
TRUNCATE TABLE `catalog_category_product`;
TRUNCATE TABLE `cataloginventory_stock_item`;
TRUNCATE TABLE `cataloginventory_stock_status`;
TRUNCATE TABLE `cataloginventory_stock_status_idx`;
TRUNCATE TABLE `cataloginventory_stock`;
TRUNCATE TABLE `core_url_rewrite`;
INSERT INTO `catalog_product_link_type`(`link_type_id`,`code`) VALUES (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell');
INSERT INTO `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) VALUES (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal');
INSERT INTO `cataloginventory_stock`(`stock_id`,`stock_name`) VALUES (1,'Default');
TRUNCATE TABLE `catalog_product_entity`;
SET FOREIGN_KEY_CHECKS = 1;
Eu precisaria do mesmo para os outros mencionados. Infelizmente, não sei quais tabelas estão contendo todos os dados diferentes, caso contrário, eu teria feito isso sozinho. Também não quero limpar as tabelas erradas por acidente. Espero que você possa me ajudar!
magento-1.7
database
Muito congelado
fonte
fonte
core_config_data
) e apenas começou de novo?Respostas:
Para pedidos
Você pode usar esta função para excluir conjuntos de atributos.
E procure esta tabela para remover o atributo
Verifique a
eav_attribute
colunais_user_defined
para ter uma ideia.fonte
Você pode apenas esvaziar todo o banco de dados e o Magento executará todos os seus scripts de instalação / atualização / dados novamente no próximo carregamento de página. Isso fará o "reset de fábrica" do Magento e destruirá todas as suas alterações.
Um bom hábito é criar um módulo que contenha todas as suas configurações básicas de armazenamento nos scripts install / upgrade / data. Isso tem o benefício de que essas configurações são armazenadas no controle de versão e todos os sites diferentes que você possui para a loja (produção, preparação, teste de aceitação do usuário etc.) serão mantidos atualizados.
Se houver várias pessoas trabalhando em um site, até criaremos um novo módulo para cada grupo de configurações, para que as versões não entrem em conflito quando mesclarmos o código.
No seu caso, eu criaria um módulo que define todas as configurações que você deseja manter. Se você limpar o banco de dados, o Magento estará completamente limpo E incluindo as configurações desejadas!
Você pode dar uma olhada nos scripts de instalação / atualização do Magento principal para ver como o Magento instala seus dados / configurações iniciais.
fonte
Se você não precisar de nada, basta esvaziar todo o banco de dados e fazer uma reinstalação limpa.
A execução de truncados em massa sempre me preocupa com possíveis efeitos duradouros de relacionamentos-chave interrompidos.
Limpeza rápida do banco de dados
Usando este script ,
Isso ficará completamente vazio e removerá todas as tabelas do banco de dados. Não use se precisar reter alguma coisa .
fonte
Antes de lançar um novo site Magento eCommerce, na fase de desenvolvimento, você sempre precisará realizar testes e isso exigirá a criação de pedidos de teste e clientes para garantir que todos os processos funcionem corretamente e como você esperaria.
Muitas vezes, isso pode acabar deixando uma carga de dados de teste no sistema que você não desejará quando o site for lançado. O Magento é notório por inserir dados em várias tabelas de banco de dados, por isso fornecemos o script SQL abaixo que excluirá todos esses dados de maneira limpa do seu banco de dados Magento (e redefinirá os contadores de incremento para vendas, faturas, clientes e remessa). Isso foi testado e confirmado trabalhando nas versões Magento de 1.4.0.1 a 1.9.0.1.
fonte
Se você estiver trabalhando com o EE, também deverá truncar as tabelas de reescrita de URLs corporativos, pois elas não têm restrições de chave estrangeira e na importação de dados (mas não definindo explicitamente os URLs), os URLs dos produtos antigos serão conectados aos novos produtos importados. produtos.
fonte
Uma coisa que ninguém mencionou é limpar as tabelas de impostos. Caso contrário, você obterá entradas repetidas de ID do pedido na tabela de impostos (quando fizer pedidos novamente no ID do pedido inicial, o mesmo ID será exibido várias vezes). Os vários itens aparecerão nas faturas / notas como vários itens de linha, tanto do lado do administrador quanto do cliente. Depois de testar / limpar usando os métodos nas postagens acima (e não limpar as tabelas de impostos), depois de um tempo, tive 10 itens de linha de imposto diferentes aparecendo para um único pedido.
Nota - o imposto foi / ainda é cobrado corretamente, mas em notas e faturas estava exibindo todos os itens. Muito confuso se um cliente ver isso.
Então, para adicionar ao acima:
E para uma boa medida:
fonte
Você deve ter um banco de dados separado para testes. Veja a estrutura de teste do magento. Todas as idéias para limpar o banco de dados após os testes estão erradas.
fonte
Eu configurei um repositório para manter scripts SQL simples para executar antes de lançar um novo site Magento. Até agora, eles podem ajudar:
https://github.com/ccondrup/mage-reset
Ajude a melhorá-los!
fonte
ccdata_empty_testdata
|| Este pode ser eu, mas de outra forma ótimo roteiro !!!Apenas meus 2 centavos ...
Em vez de descobrir o que excluir e apenas perceber o que perdi mais tarde, executo algumas VMs e uso instantâneos em vários estágios, além de ter dois sites separados - um ao vivo e um teste.
É fácil ter um script para "restaurar" o teste do live quando eu precisar. Além disso, se o cliente tiver acesso ao sistema de teste, ele também poderá jogar com ele antes de fazer qualquer coisa com o live - não há necessidade de restaurar a partir de um backup e perder pedidos e outras alterações no processo ( embora ele teste sua estratégia de backup.) . )
Eu acho que esse é um processo muito melhor e "mais seguro" do que executar um script personalizado (desatualizado?) Para excluir coisas (demais?) ...
(Além disso, sinta-se à vontade para fazer um voto negativo, pois ainda não posso comentar!)
fonte
MYSQL Solte e crie o banco de dados e adicione os privilégios de usuário e o usuário administrador do magento.
Adicione usuário administrador do Magento:
fonte
Com base em uma resposta de Mufaddal, preparei uma consulta para limpar a ordem e os dados relacionados no Magento 2.2
fonte
Simplesmente pegue seu banco de dados phpMyadmin e abra a tabela
sales_flat_order
e remova os dados dessa tabela e suas ordens de teste serão limpas. Não há necessidade de nenhum código, comando ou extensão. legal.fonte
Essa é uma resposta tardia, mas pode ser útil.
Estou desenvolvendo um site de comércio eletrônico baseado no Magento 1.7 e costumo TDD.
Acho que não devemos nos preocupar em limpar o banco de dados manualmente enquanto podemos usar o Magento
beginTransaction
e osrollback
métodos.Aqui está um exemplo
Esta resposta é inspirada nesta resposta do Magento , visite-a para ler mais.
fonte