Eu tenho uma tabela personalizada. Eu quero truncar a tabela usando a coleção Magento sem consulta SQL.
Espero que alguém forneça algumas informações úteis.
magento-1.7
magento-1.8
database
collection
VijayS91
fonte
fonte
Respostas:
Magento não tem suporte para isso (tanto quanto eu sei).
Mas você pode implementar um método em seu modelo de recursos (não no modelo de recursos de coleção) que truncará a tabela.
Algo assim:
Então você pode chamá-lo em seu código:
Mas esta é uma abordagem muito perigosa. O
truncate
extrato quebra a transação, portanto não pode ser revertida caso seja necessário.Sugiro excluir todas as entidades da tabela.
O lado negativo disso é que ele não redefine o ID de incremento da tabela. Mas é mais seguro.
EDIT .
Para atualizar o ID de incremento da tabela principal, você pode adicionar um novo método no seu modelo de recursos que faça algo assim.
Em seguida, chame seu método no código:
fonte
Mage_Catalog_Model_Product
. Existe o modelo de recursos. Exemplo:Mage_Catalog_Model_Resource_Product
. E existe o modelo de recurso de coleçãoMage_Catalog_Model_Resource_Product_Collection
.Nota: O MySQL redefine o valor de incremento automático para
1
quando truncar uma tabela, portanto não é necessário, maschangeTableAutoIncrement
pode ser útil se alguém quiser ter AI iniciando com outro valor.Editar:
Esta questão foi marcada com magento-1.7 / magento-1.8 ... apenas para completar a resposta:
changeTableAutoIncrement
foi adicionado em 1.8.0.1truncateTable
foi adicionado em 1.6.0.0-alpha1fonte
Eu criei um modelo e, para algum desenvolvimento, tive que implementar o método delete. Isso é muito fácil. Também tento excluir condicionalmente, mas não recebi o código exato. Mas estou usando o código a seguir, que atenderá aos seus requisitos para exclusão condicional.
fonte