Magento Coding Solutions

Use of $installer v $this in install scripts

$installer = $this;
you can uses instance of $this is 
$installer = new Mage_Eav_Model_Entity_Setup; 
or
$installer =new Mage_Catalog_Model_Resource_Setup;



$installer = new Mage_Sales_Model_Resource_Setup('core_setup');   
$installer->startSetup();

$installer->addAttribute("quote_address", "prepaiddiscount_total", array("type"=>"varchar"));
$installer->addAttribute("order", "prepaiddiscount_total", array("type"=>"varchar"));
$installer->endSetup();

add custom option in magento

$productId=ProductId
$proAdd=Mage::getModel('catalog/product')->load($productId);
$options =  array(
'is_delete' => 0,
'title' => 'addmorproduct',
'optgroup ' => 'text',
'type' => 'field',
'is_require' => 0,
'sort_order' => 0,
'pric' => 0.00,
'price_type' => 'fixed',
'sku' => '',
);

$optionInstance = $proAdd->getOptionInstance()->unsetOptions();
$proAdd->setHasOptions(1);
if (isset($options['is_require']) && ($options['is_require'] == 1)) {
$proAdd->setRequiredOptions(1);
}
$optionInstance->addOption($options);
$optionInstance->setProduct($proAdd);
$proAdd->save();

unset($optionInstance);
unset($proAdd);
echo $productId." Add options Successfully!</br> ";