2012-05-24 27 views
4

是否有在Magento的管理工具,它會從所有產品中刪除所有圖像?我知道你可以逐個產品去除所有圖像,但是我想知道是否有一個管理工具可以一次完成所有產品?Magento的管理工具來去除所有產品圖片

在此先感謝。

回答

11

我不知道你爲什麼會想這樣做,但在這裏是一種方法,直接從數據庫中做到這一點。

  1. 備份後再截斷這2個表:

    catalog_product_entity_media_gallery catalog_product_entity_media_gallery_value

  2. 然後刪除'/媒體/目錄/產品'

  3. 清楚所有高速緩存。

我還沒有測試過它,但它應該做這項工作。如果它不工作,然後還原這些2個表

+0

這可以很好地工作,並防止在開發階段針對產品構建重複圖像。應該標記爲正確答案。 – zigojacko

+1

我試圖截斷表時不斷收到錯誤。 (''dbname'.'catalog_product_entity_media_gallery_value',CONSTRAINT'FK_CATALOG_PRODUCT_MEDIA_GALLERY_VALUE_GALLERY' FOREIGN KEY('value_id')REFERENCES'dbname'.'catalog_pro) –

+1

我得到了外鍵約束信息以及。我通過刪除「DELETE FROM catalog_product_entity_media_gallery;」來刪除所有記錄來解決它最後給出了相同的結果。 –

3

此方法測試,確實工作。你可能想要這樣做的一個原因是當你測試產品的數據流導入時。當您在上傳指定的圖像,Magento的只有增加圖片 - 它不會替換或刪除它們。

最終的結果是,一個輪廓的多次運行,會積累許多都是多餘的圖像。

mysql> **truncate catalog_product_entity_media_gallery;** 
mysql> **truncate catalog_product_entity_media_gallery_value;** 

然後,從你的Magento媒體/目錄文件夾的命令提示符:

media/catalog$ **rm -rf ./product/** 
+1

這對我來說很合適,但我更喜歡從內部cd到目錄本身media/catalog/product /然後rm -rf,只是爲了我自己的理智 – DWils

2

這是一個壞主意通過DB要做到這一點,但如果你必須:

ALTER TABLE `catalog_product_entity_media_gallery_value` 
DROP FOREIGN KEY `FK_CAT_PRD_ENTT_MDA_GLR_VAL_STORE_ID_CORE_STORE_STORE_ID`, 
DROP FOREIGN KEY `FK_CAT_PRD_ENTT_MDA_GLR_VAL_VAL_ID_CAT_PRD_ENTT_MDA_GLR_VAL_ID`; 

TRUNCATE `catalog_product_entity_media_gallery_value`; 
TRUNCATE `catalog_product_entity_media_gallery`; 

ALTER TABLE `catalog_product_entity_media_gallery_value` 
ADD CONSTRAINT `FK_CAT_PRD_ENTT_MDA_GLR_VAL_STORE_ID_CORE_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `core_store` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE, 
ADD CONSTRAINT `FK_CAT_PRD_ENTT_MDA_GLR_VAL_VAL_ID_CAT_PRD_ENTT_MDA_GLR_VAL_ID` FOREIGN KEY (`value_id`) REFERENCES `catalog_product_entity_media_gallery` (`value_id`) ON DELETE CASCADE ON UPDATE CASCADE; 

然後您可以刪除產品文件夾:

cd media/catalog/product 
rm -rf *