mysqldump from CLI select tables

Suppose you need to take just a few tables from a database, like all the customer tables from a magento install. You just need to set up a few shell variables and you can mysqldump away! You’ll need your mysql database user name and password.

$:DBTODUMP=dbname_here
$:SQL="select group_concat(table_name separator ' ') from information_schema.tables where table_schema='$DBTODUMP' and table_name like 'customer%'"
$:TBLIST=`mysql -u db_user -pPASSWORD -AN -e"$SQL"`
$:mysqldump -u db_user -pPASSWORD $DBTODUMP $TBLIST > customer_tables.sql

mysqldump to gz

mysqldump --single-transaction -u user -p[user_password] [database_name] | gzip > dumpfilename.sql.gz

the next thing you’re gonna ask …

scp username@hostname:/path/to/file/from/root/dumpfilename.sql.gz ./dumpfilename.sql.gz

and after that …


sed -i 's/DEFINER=[^*]*\*/\*/g' mydump.sql

and if you can’t create InnoDB tables and the create statements contain ROW_FORMAT

sed -ie 's/ROW_FORMAT=FIXED//g'

Magento Flush Cache from FTP

->FTP users can use the following command to cleanup Magento caches:

mrm -r ./var/cache ; mkdir ./var/cache

mrm -r ./var/full_page_cache ; mkdir ./var/full_page_cache

Magento Field Validation Class Options

‘validate-no-html-tags’ => ‘HTML tags are not allowed’

‘validate-select’ => ‘Please select an option.’

‘required-entry’ => ‘This is a required field.’

‘validate-number’ => ‘Please enter a valid number in this field.’

‘validate-number-range’ => ‘The value is not within the specified range.’

‘validate-digits’ => ‘Please use numbers only in this field. Please avoid spaces or other characters such as dots or commas.’

‘validate-digits-range’ => ‘The value is not within the specified range.’

‘validate-alpha’ => ‘Please use letters only (a-z or A-Z) in this field.’

‘validate-code’ => ‘Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.’

‘validate-alphanum’ => ‘Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.’

‘validate-alphanum-with-spaces’ => ‘Please use only letters (a-z or A-Z), numbers (0-9) or spaces only in this field.’

‘validate-street’ => ‘Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field.’

‘validate-phoneStrict’ => ‘Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.’

‘validate-phoneLax’ => ‘Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.’ ‘validate-fax’ => ‘Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890.’ ‘validate-date’ => ‘Please enter a valid date.’ ‘validate-date-range’ => ‘The From Date value should be less than or equal to the To Date value.’ ‘validate-email’ => ‘Please enter a valid email address. For example johndoe@domain.com.’ ‘validate-emailSender’ => ‘Please use only visible characters and spaces.’ ‘validate-password’ => ‘Please enter 6 or more characters. Leading or trailing spaces will be ignored.’ ‘validate-admin-password’ => ‘Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.’ ‘validate-both-passwords’ => ‘Please make sure your passwords match.’ ‘validate-url’ => ‘Please enter a valid URL. Protocol is required (http://, https:// or ftp://)’ ‘validate-clean-url’ => ‘Please enter a valid URL. For example http://www.example.com or www.example.com’ ‘validate-identifier’ => ‘Please enter a valid URL Key. For example “example-page”, “example-page.html” or “anotherlevel/example-page”.’ ‘validate-xml-identifier’ => ‘Please enter a valid XML-identifier. For example something_1, block5, id-4.’ ‘validate-ssn’ => ‘Please enter a valid social security number. For example 123-45-6789.’ ‘validate-zip’ => ‘Please enter a valid zip code. For example 90602 or 90602-1234.’ ‘validate-zip-international’ => ‘Please enter a valid zip code.’ ‘validate-date-au’ => ‘Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.’ ‘validate-currency-dollar’ => ‘Please enter a valid $ amount. For example $100.00.’ ‘validate-one-required’ => ‘Please select one of the above options.’ ‘validate-one-required-by-name’ => ‘Please select one of the options.’ ‘validate-not-negative-number’ => ‘Please enter a number 0 or greater in this field.’ ‘validate-zero-or-greater’ => ‘Please enter a number 0 or greater in this field.’ ‘validate-greater-than-zero’ => ‘Please enter a number greater than 0 in this field.’ ‘validate-state’ => ‘Please select State/Province.’ ‘validate-new-password’ => ‘Please enter 6 or more characters. Leading or trailing spaces will be ignored.’ ‘validate-cc-number’ => ‘Please enter a valid credit card number.’ ‘validate-cc-type’ => ‘Credit card number does not match credit card type.’ ‘validate-cc-type-select’ => ‘Card type does not match credit card number.’ ‘validate-cc-exp’ => ‘Incorrect credit card expiration date.’ ‘validate-cc-cvn’ => ‘Please enter a valid credit card verification number.’ ‘validate-ajax’ => ‘validate-data’ => ‘Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.’ ‘validate-css-length’ => ‘Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%.’ ‘validate-length’ => ‘Text length does not satisfy specified text range.’ ‘validate-percents’ => ‘Please enter a number lower than 100.’ ‘validate-cc-ukss’ => ‘Please enter issue number or start date for switch/solo card type.’

Magento 1 Categories, with and without Flat Tables

Sometimes Magento leaves you wondering, “WHY!?!?!?!?!?”

 

If flat categories are enabled, and you want all the children of a parent category, do this:

$children = Mage::getModel('catalog/category')->load($theCategoryIdHere)->getChildrenCategories();

If they are not enabled, do this:

$children = Mage::getModel('catalog/category')->getCategories($theCategoryIdHere);

How do you know if they are enabled?

if (Mage::helper('catalog/category_flat')->isEnabled()) {}

Also, getChildrenCategories() on the flat category list returns the category objects in the same order you find them in the admin category manager. However,

Mage::getModel('catalog/category')->load($theCategoryIdHere)->getChildren();

returns a comma separated string of child category ids in numerical order.

Magento 1 Data Upgrade Script: Set All Simple Products to Manage Stock

<?php
/* @var $installer Mage_Core_Model_Resource_Setup */
$installer = $this;
$installer->startSetup();

$collection = Mage::getModel('catalog/product')->getCollection()
    ->addAttributeToSelect('*')
    ->addAttributeToFilter('type_id', 'simple');

foreach ($collection as $product) {
    $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product->getId());
    $stockItem->setData('manage_stock', 1);
    $stockItem->setData('use_config_manage_stock', 1);
    $stockItem->save();
}

$installer->endSetup();

?>

SCP

You can do this with the scp command, which uses the ssh protocol to copy files across machines. It extends the syntax of cp to allow references to other systems:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file

Copy something from this machine to some other machine:

scp /path/to/local/file username@hostname:/path/to/remote/file

Copy something from another machine to this machine:

scp username@hostname:/path/to/remote/file /path/to/local/file

Copy with a port number specified:

scp -P 1234 username@hostname:/path/to/remote/file /path/to/local/file