SQL. , Enterprise Magento . - , , , , . :
try {
$write = Mage::getSingleton('core/resource')->getConnection('core_write');
$write->beginTransaction();
$write->commit();
} catch (Exception $e) {
mage::log(__METHOD__ . ':' . __LINE__ . ': Rollback happened.');
$write->rollback();
}
, // /Mage/Core/Model/Resource/Setup.php, . : _getModifySqlFiles, _rollbackResourceDb _modifyResourceDb.
_modifyResourceDb , $actionType - , PHP .
$arrAvailableFiles = array();
$sqlDir = dir($sqlFilesDir);
while (false !== ($sqlFile = $sqlDir->read())) {
$matches = array();
if (preg_match('#^'.$resModel.'-'.$actionType.'-(.*)\.(sql|php)$#i', $sqlFile, $matches)) {
$arrAvailableFiles[$matches[1]] = $sqlFile;
}
}
:
$arrModifyFiles = $this->_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrAvailableFiles);
, , Magento EAV .
protected function _getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrFiles)
{
$arrRes = array();
switch ($actionType) {
case 'install':
case 'data-install':
...
case 'rollback':
break;
case 'uninstall':
break;
}
return $arrRes;
}
, ORM, magento Autoloading, .
, , , , , . , , , , , , , .
, , , /SQL. , Enterprise CMS , .
, , , " ", :
MySQLDump , BASE_URL SQL.
Magento
: Phing.
, "" "", , , .