Depois de várias importações bagunçadas, fiquei com uma carga de reescrições de URL que preciso remover.
Estou executando o Enterprise 1.13
Quando tive esse problema na comunidade, simplesmente truncei core_url_rewrite
e reindexei.
No entanto, no Enterprise, percebo que existem várias tabelas diferentes que controlam as reescritas.
enterprise_url_rewrite
enterprise_url_rewrite_category_cl
enterprise_url_rewrite_product_cl
enterprise_url_rewrite_redirect
enterprise_url_rewrite_redirect_cl
enterprise_url_rewrite_redirect_rewrite
Estou seguro para truncar todos eles?
Prevejo totalmente que alguém me diga que nunca deveria truncar essas tabelas, portanto peço desculpas pela ingenuidade com antecedência.
magento-enterprise
url-rewrite
ee-1.13
JamesAllwood
fonte
fonte
core_url_rewrite
e funcionou.Respostas:
Estamos em uma situação semelhante à sua, James. Depois de muita pesquisa, é isso que eu criei:
A
core_url_rewrite
tabela agora está obsoleta. Em vez disso, o Magento EE 1.13 agora armazena as regravaçõesenterprise_url_rewrite
.Tabelas:
enterprise_*_category_rewrite
usecatalog_*_entity_url_key
tabelas para recriar as duas tabelas de reescrita ao executarphp indexer.php --reindex catalog_url_*
Quando você adiciona um 'URL Redirect' em admin Catalog-> URL Redirects para um URL personalizado, ele é adicionado à
enterprise_url_rewrite_redirect
tabela e o sinalizador para Magento de que o índice agora está desatualizado é inserido naenterprise_url_rewrite_redirect_cl
tabela que, ao executar,php indexer.php --reindex url_redirect
reconstrói aenterprise_url_rewrite_redirect_rewrite
tabela.Nota rápida, qualquer tabela que termina em _cl é segura para truncar, o 'CL' significa Change Log e é usado pelo Magento para verificar se é necessária uma nova indexação.
No que diz respeito às tabelas URL Key, ainda estou um pouco sem noção do motivo pelo qual existem duas entradas de chave URL uma dentro
catalog_*_entity_url_key
e outra dentrocatalog_*_entity_varchar
(atributo 90), mas presumo que seja isso o que acontece:Quando você cria um novo produto / categoria, o Magento usa o nome para gerar uma url_key que é colocada em
catalog_*_entity_url_key
ANDcatalog_*_entity_varchar
, mas a tabela principal usada pelo Magento écatalog_*_entity_url_key
porque, se você o truncar e executar,php indexer.php --reindex catalog_url_*
suasenterprise_*_category_rewrite
tabelas estarão vazias e os produtos / categorias em o frontend exibirá URLs feias, ou seja,http://example.com/catalog/product/view/id/123/etc/etc
não amigável para SOE. Acredito que as duas tabelas estejam relacionadas e sejam usadas para criar aenterprise_url_rewrite
tabela, porque essa tabela armazena um 'caminho_de_ requisição', provavelmente a url_key dentro dacatalog_*_entity_varchar
tabela e um 'identificador', que é o principal Chave de URL dacatalog_*_entity_url_key
tabela. Eu poderia estar completamente errado sobre as tabelas url_key e varchar, então estou pensando em voz alta.De qualquer forma, para truncar e reconstruir com êxito todas as tabelas de reescrita, você pode executar:
e então execute:
Se você também truncar
enterprise_url_rewrite_redirect
, perderá todos os redirecionamentos personalizados que vê no painel do administrador, talvez seja esse o seu objetivo, pois você ficou com uma tonelada de URLs inúteis. Contanto que você NÃO trunque as tabelas '* _entity_url_key', você estará bem.Nossa história foi um pouco diferente, porque tivemos chaves de URL duplicadas e grandes problemas com nomes de produtos das importações do Excel após a atualização para 1,13 da 1,11, então escrevi esse script rápido para redefinir a
catalog_product_entity_url_key
tabela e as chaves de URL e os caminhos de URL nacatalog_product_entity_varchar
tabela usando o produto nomes. Anexei o código abaixo, mas se você usá-lo, use-o por sua conta e risco.O código pode ser ajustado para usar o método Magentos formatKey aqui: http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/seo/url_key_characters_conversion infelizmente me deparei com o wiki depois que eu atualizei todas as chaves para que eu não me incomodei reupdating tudo de novo.
Espero que ajude :)!
fonte
sudo php indexer.php --reindex catalog_url_catalog
deveria sersudo php indexer.php --reindex catalog_url_category
.catalog/product/view/id/XXX/category/YYY
. Você pode confirmar que isso é o mesmo para você? Eu sou meio ignorante sobre isso ... É um bug ou estou fazendo algo errado? Tentei fazer o mesmo em uma nova instalação da 1.13.0.2, a mesma coisa aconteceu. As regravações funcionam bem no frontend, mas nenhuma categoria está definida.Com base no que eu vi brincando com o EE 1.13 em um ambiente de teste e em alguns pequenos testes que acabei de fazer, você deve poder truncar essas tabelas e reconstruir manualmente manualmente todos os índices de URL da CLI.
As tabelas * _cl são usadas nos TRIGGERS encontrados na
catalog_product_entity_url_key
tabela. Os registros que eles inserem nessa tabela * _cl são o que, penso eu, é usado para indicar o que precisa ser reindexado após as gravações.Aqui está o que eu fiz. Depois de usar a ferramenta CLI para recriar os índices, tudo parecia estar pronto. Truncamento MySql…
Então na CLI…
Deixe-nos saber seus resultados ... como Marius, ainda não construí um site EE 1.13 e tenho apenas a experiência de mexer com ele desde o Imagine. :)
fonte
enterprise_url_rewrite
vscore_url_rewrite
como eram antes. Ascatalog_*_entity_url_key
tabelas parecem ser uma tabela replicada com as teclas de URL para uso do indexador e também são as tabelas com os gatilhos relacionados às reescritas de URL.Uma observação sobre o uso do TRUNCATE:
dá um erro devido a referências de chave estrangeira:
Executar comandos truncar / excluir como este funcionaria:
fonte
SET FOREIGN_KEY_CHECKS = 0;
antes do seuTRUNCATE ...
eSET FOREIGN_KEY_CHECKS = 1;
na parte inferior, depois deDELETE FROM ...
A resposta simples é Não , não é seguro truncar essas tabelas, pelo menos se você não souber a consequência:
Contudo:
Catalog -> Url Redirect
estará vazio (no EE 1.13.1)(que parece um bug deacordo com o Magento, este é o comportamento esperado no 1.13.1) (veja também o comentário abaixo)fonte
Catalog -> Url Redirect
mostra apenas reescritas que não são do sistema. Portanto, apenas suas reescritas personalizadas serão exibidas aqui. ou seja, linhas comenterprise_url_rewrite.system = 0
.