Monday, August 20, 2012

Pre-dump database reduction script

Big databases are always a problem and it is handy to clean up your database before you are going to do a db dump. This is most handy when you have to move the dump from one server to another. The syntax for you file will be something like this
truncate dataflow_batch_export;
truncate dataflow_batch_import;
truncate log_customer;
truncate log_quote;
truncate log_summary;
truncate log_summary_type;
truncate log_url;
truncate log_url_info;
truncate log_visitor;
truncate log_visitor_info;
truncate log_visitor_online; 
truncate report_viewed_product_index;
truncate report_compared_product_index;
truncate report_event;
truncate report_viewed_product_aggregated_daily;
truncate report_viewed_product_aggregated_monthly;
truncate report_viewed_product_aggregated_yearly;
truncate sendfriend_log;
Then you want to save this as a sql file. (cleandb.sql) Then you can run it against your current database (After you make a backup) like this: First I would take a current backup of your database like this
mysqldump -p'password' -u user -h hostaddress databasename | gzip > backup.sql.gz
Then run the clean script
mysql -p'password' -u user -h hostaddress databasename < cleandb.sql

Wednesday, July 11, 2012

Delete all Magento Products

Delete all your products in Magento

If you don't know what you are doing don't do this. It will completely ruin your site. You will have no products left. Always make a backup! This is tested on 1.6 + Vern has pointed out I need to remove products and categories, I have posted his update
SET FOREIGN_KEY_CHECKS = 0;
        TRUNCATE TABLE `core_url_rewrite`;
        TRUNCATE TABLE `catalog_product_relation`;
        TRUNCATE TABLE `catalog_category_entity`;
        TRUNCATE TABLE `catalog_category_entity_datetime`;
        TRUNCATE TABLE `catalog_category_entity_decimal`;
        TRUNCATE TABLE `catalog_category_entity_int`;
        TRUNCATE TABLE `catalog_category_entity_text`;
        TRUNCATE TABLE `catalog_category_entity_varchar`;
        TRUNCATE TABLE `catalog_category_product`;
        TRUNCATE TABLE `catalog_category_product_index`;

        INSERT  INTO `catalog_category_entity`(`entity_id`,`entity_type_id`,`attribute_set_id`,`parent_id`,`created_at`,`updated_at`,`path`,`position`,`level`,`children_count`) VALUES (1,3,0,0,'0000-00-00 00:00:00','2009-02-20 00:25:34','1',1,0,1),(2,3,3,0,'2009-02-20 00:25:34','2009-02-20 00:25:34','1/2',1,1,0);
        INSERT  INTO `catalog_category_entity_int`(`value_id`,`entity_type_id`,`attribute_id`,`store_id`,`entity_id`,`value`) VALUES (1,3,34,0,2,1),(2,3,34,1,2,1);
        INSERT  INTO `catalog_category_entity_varchar`(`value_id`,`entity_type_id`,`attribute_id`,`store_id`,`entity_id`,`value`) VALUES
            (1,3,33,0,1,'Root Catalog'),
            (2,3,35,0,1,'root-catalog'),
            (3,3,33,0,2,'Default Category'),
            (4,3,41,0,2,'PRODUCTS'),
            (5,3,35,0,2,'default-category');
        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_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_category_product_index`;
        TRUNCATE TABLE `catalog_category_product`;
        TRUNCATE TABLE `cataloginventory_stock_item`;
        TRUNCATE TABLE `cataloginventory_stock_status`;
        TRUNCATE TABLE `cataloginventory_stock`;
        TRUNCATE TABLE `catalog_compare_item`;
        TRUNCATE TABLE `adminnotification_inbox`;
        TRUNCATE TABLE `index_event`;
        TRUNCATE TABLE `index_process_event`;
        TRUNCATE TABLE `log_url_info`;
        TRUNCATE TABLE `log_url`;
        TRUNCATE TABLE `log_visitor`;
        TRUNCATE TABLE `log_visitor_info`;
        TRUNCATE TABLE `report_viewed_product_index`;
        TRUNCATE TABLE `report_event`;
        DELETE FROM `eav_attribute_option` WHERE attribute_id = 70;
        DELETE `eav_attribute_option_value`.* FROM `eav_attribute_option_value` LEFT JOIN `eav_attribute_option` USING (`option_id`) WHERE `eav_attribute_option`.`option_id` IS NULL;
        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;

SSH Upgrade for Magento

Just a quick way to upgrade you site
find . -type f -exec chmod 777 {} \;
find . -type d -exec chmod 777 {} \;
rm -rf var/cache/* var/session/*
chmod 550 ./mage
./mage mage-setup .
./mage config-set preferred_state stable
./mage list-installed
./mage list-upgrades
./mage install http://connect20.magentocommerce.com/community Mage_All_Latest --force
php shell/indexer.php reindexall
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;