Exemplo n.º 1
0
    public function installQuickstartDB_ ($data) {
        $config = array(
            'host'      => $data['db_host'],
            'username'  => $data['db_user'],
            'password'  => $data['db_pass'],
            'dbname'    => $data['db_name']
        );
        $connection = Mage::getSingleton('core/resource')->createConnection('core_setup', $this->_getConnenctionType(), $config);

        $installer = new Mage_Core_Model_Resource_Setup('core_setup');
		$installer->startSetup();
		//Get content from quickstart data
		$tablePrefix = $data['db_prefix'];
		$base_url = $data['unsecure_base_url'];
		$base_surl = $base_url;
		if (!empty($data['use_secure'])) $base_surl = $data['secure_base_url'];
		$file = Mage::getConfig()->getBaseDir().'/sql/'.$this->quickstart_db_name;
		if (is_file($file) && ($sqls = file_get_contents ($file))) {
			$sqls = str_replace ('#__', $tablePrefix, $sqls);
			$installer->run ($sqls);
		}
		
		$installer->run ("
			UPDATE `{$tablePrefix}core_config_data` SET `value`='$base_url' where `path`='web/unsecure/base_url';
			UPDATE `{$tablePrefix}core_config_data` SET `value`='$base_surl' where `path`='web/secure/base_url';
		"
		);
		
		$installer->endSetup();
    }
Exemplo n.º 2
0
 /**
  * @param Mage_Core_Model_Resource_Setup $installer
  * @param string                         $sql
  */
 public function trySql($installer, $sql)
 {
     try {
         $installer->run($sql);
     } catch (Exception $e) {
         //            throw $e;
     }
 }
Exemplo n.º 3
0
 protected function setUp()
 {
     $installer = new Mage_Core_Model_Resource_Setup(Mage_Core_Model_Resource_Setup::DEFAULT_SETUP_CONNECTION);
     $this->_connection = $installer->getConnection();
     $this->_tableName = $installer->getTable('table_two_column_idx');
     $this->_oneColumnIdxName = $installer->getIdxName($this->_tableName, array('column1'));
     $this->_twoColumnIdxName = $installer->getIdxName($this->_tableName, array('column1', 'column2'));
     $table = $this->_connection->newTable($this->_tableName)->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true), 'Id')->addColumn('column1', Varien_Db_Ddl_Table::TYPE_INTEGER)->addColumn('column2', Varien_Db_Ddl_Table::TYPE_INTEGER)->addIndex($this->_oneColumnIdxName, array('column1'))->addIndex($this->_twoColumnIdxName, array('column1', 'column2'));
     $this->_connection->createTable($table);
 }
Exemplo n.º 4
0
 public function endSetup()
 {
     $cacheKey = Mage::helper('M2ePro/Module')->getName() . '_VERSION_UPDATER';
     Mage::app()->getCache()->remove($cacheKey);
     Mage::helper('M2ePro/Data')->removeAllCacheValues();
     return parent::endSetup();
 }
Exemplo n.º 5
0
 public function endSetup()
 {
     $this->removeConfigDuplicates();
     $this->updateInstallationVersionHistory();
     Mage::helper('M2ePro/Module')->clearCache();
     return parent::endSetup();
 }
Exemplo n.º 6
0
 protected function _installResourceDb($newVersion)
 {
     parent::_installResourceDb($newVersion);
     $this->updateInstallationVersionHistory(null, $newVersion);
     $this->updateCompilation();
     return $this;
 }
Exemplo n.º 7
0
 /**
  * @param InputInterface   $input
  * @param OutputInterface $output
  * @return int|null
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->getApplication()->setAutoExit(false);
     $this->detectMagento($output);
     if (!$this->initMagento()) {
         return;
     }
     try {
         if (false === $input->getOption('no-implicit-cache-flush')) {
             $this->flushCache();
         }
         /**
          * Put output in buffer. \Mage_Core_Model_Resource_Setup::_modifyResourceDb should print any error
          * directly to stdout. Use execption which will be thrown to show error
          */
         \ob_start();
         \Mage_Core_Model_Resource_Setup::applyAllUpdates();
         if (is_callable(array('\\Mage_Core_Model_Resource_Setup', 'applyAllDataUpdates'))) {
             \Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
         }
         \ob_end_clean();
         $output->writeln('<info>done</info>');
     } catch (Exception $e) {
         \ob_end_clean();
         $this->printException($output, $e);
         $this->printStackTrace($output, $e->getTrace());
         $this->printFile($output, $e);
         return 1;
         // exit with error status
     }
 }
Exemplo n.º 8
0
 public function run($sql)
 {
     if (trim($sql) == '') {
         return $this;
     }
     $sql = $this->prepareSql($sql);
     return parent::run($sql);
 }
Exemplo n.º 9
0
 /**
  * Store the applied update versions
  *
  * @return parent::applyUpdates()
  */
 public function applyUpdates()
 {
     $dbVer = $this->_getResource()->getDbVersion($this->_resourceName);
     $configVer = (string) $this->_moduleConfig->version;
     $this->setDbVer($dbVer);
     $this->setConfigVer($configVer);
     return parent::applyUpdates();
 }
Exemplo n.º 10
0
 public function getMovementReportCollection($requestData)
 {
     //variable request data
     $report_type = isset($requestData['report_radio_select']) ? $requestData['report_radio_select'] : null;
     $warehouse = isset($requestData['warehouse_select']) ? $requestData['warehouse_select'] : null;
     $timeRange = Mage::helper('inventoryreports')->getTimeRange($requestData);
     /* Prepare Collection */
     //switch report type
     $dbResource = new Mage_Core_Model_Resource_Setup('core_setup');
     $dbResource->run('SET SESSION group_concat_max_len = 999999;');
     switch ($report_type) {
         case 'stock_in':
             return $this->getStockInCollection($timeRange['from'], $timeRange['to'], $warehouse);
         case 'stock_out':
             return $this->getStockOutCollection($timeRange['from'], $timeRange['to'], $warehouse);
     }
 }
 /**
  * If Legacy add-on extension installed
  * Apply legacy hacks
  *
  * @param string $resourceName
  * @return void
  */
 public function __construct($resourceName)
 {
     if (Mage::helper('wordpress')->isLegacy()) {
         if ($helper = Mage::helper('wp_addon_legacy')) {
             $helper->applyLegacyHacks();
         }
     }
     parent::__construct($resourceName);
 }
Exemplo n.º 12
0
 /**
  * Replace unique key
  * 
  * @param Mage_Core_Model_Resource_Setup $setup
  * @param string $tableName
  * @param string $keyName
  * @param array $keyAttributes
  * @return Innoexts_InnoCore_Helper_Database
  */
 public function replaceUniqueKey($setup, $tableName, $keyName, $keyAttributes)
 {
     $connection = $setup->getConnection();
     $versionHelper = $this->getVersionHelper();
     $table = $setup->getTable($tableName);
     if ($versionHelper->isGe1600()) {
         $indexTypeUnique = Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE;
         $indexes = $connection->getIndexList($table);
         foreach ($indexes as $index) {
             if ($index['INDEX_TYPE'] == $indexTypeUnique) {
                 $connection->dropIndex($table, $index['KEY_NAME']);
             }
         }
         $keyName = $setup->getIdxName($tableName, $keyAttributes, $indexTypeUnique);
         $connection->addIndex($table, $keyName, $keyAttributes, $indexTypeUnique);
     } else {
         $connection->addKey($table, $keyName, $keyAttributes, 'unique');
     }
     return $this;
 }
Exemplo n.º 13
0
 /**
  * This is a first observer in magento
  * where we can update module list and configuration.
  *
  * @param $observer
  */
 public function resourceGetTableName($observer)
 {
     if ($observer->getTableName() !== 'core_website') {
         return;
     }
     try {
         Mage::getSingleton('eltrino_compatibility/modules')->loadModules();
         Mage_Core_Model_Resource_Setup::applyAllUpdates();
     } catch (Exception $e) {
         Mage::logException($e);
     }
 }
Exemplo n.º 14
0
 /**
  * Instal Sample database
  *
  * $data = array(
  *      [db_host]
  *      [db_name]
  *      [db_user]
  *      [db_pass]
  * )
  *
  * @param array $data
  */
 public function installSampleDB_($data)
 {
     $config = array('host' => $data['db_host'], 'username' => $data['db_user'], 'password' => $data['db_pass'], 'dbname' => $data['db_name']);
     $connection = Mage::getSingleton('core/resource')->createConnection('core_setup', $this->_getConnenctionType(), $config);
     $installer = new Mage_Core_Model_Resource_Setup('core_setup');
     $installer->startSetup();
     //Get content from sample data
     //Default sample data
     //$tablePrefix = (string)Mage::getConfig()->getTablePrefix();
     $tablePrefix = $data['db_prefix'];
     $base_url = $data['unsecure_base_url'];
     $base_surl = $base_url;
     if (!empty($data['use_secure'])) {
         $base_surl = $data['secure_base_url'];
     }
     /* Run sample_data.sql if found, by pass default sample data from Magento */
     $file = Mage::getConfig()->getBaseDir() . '/sql/sample_data.sql';
     if (is_file($file) && ($sqls = file_get_contents($file))) {
         $sqls = str_replace('#__', $tablePrefix, $sqls);
         $installer->run($sqls);
     } else {
         $file = Mage::getConfig()->getBaseDir() . '/sql/magento_sample_data_for_1.2.0.sql';
         if (is_file($file) && ($sqls = file_get_contents($file))) {
             $sqls = str_replace('#__', $tablePrefix, $sqls);
             $installer->run($sqls);
         }
     }
     $installer->run("\n\t\t\tUPDATE `{$tablePrefix}core_config_data` SET `value`='{$base_url}' where `path`='web/unsecure/base_url';\n\t\t\tUPDATE `{$tablePrefix}core_config_data` SET `value`='{$base_surl}' where `path`='web/secure/base_url';\n\t\t");
     $installer->endSetup();
 }
Exemplo n.º 15
0
 /**
  * @see vendor/symfony/src/Symfony/Component/Console/Command/Symfony\Component\Console\Command.Command::execute()
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->preExecute($input, $output);
     $this->createExtensionFolder();
     foreach ($this->config->getExtensions() as $name => $extension) {
         $this->installExtension($name, $extension);
     }
     $this->initMagento();
     \Mage_Core_Model_Resource_Setup::applyAllUpdates();
     \Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
     \Mage::getModel('core/cache')->flush();
     Logger::notice('Done');
 }
Exemplo n.º 16
0
 public function execute()
 {
     Mage::app('admin');
     \Mage_Core_Model_Resource_Setup::applyAllUpdates();
     \Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
     try {
         $this->setup();
     } catch (Exception $e) {
         $msg .= $e->getMessage() . ' (' . $e->getFile() . ' l. ' . $e->getLine() . ")\n";
         Logger::error('An error occured while initializing InitGermanSetup:', array(), false);
         Logger::log('%s (%s, line %s)', array($e->getMessage(), $e->getFile(), $e->getLine()));
     }
 }
Exemplo n.º 17
0
 /**
  * Do not install module if Magento is not installed yet.
  * This prevents error during Mage_Cms data install.
  *
  * @see Mage_Core_Model_Resource_Setup::applyUpdates()
  */
 public function applyUpdates()
 {
     if (!Mage::isInstalled()) {
         $modules = Mage::getConfig()->getNode('modules')->children();
         $myModule = substr(__CLASS__, 0, strpos(__CLASS__, '_Model'));
         foreach ($modules as $moduleName => $moduleNode) {
             if ($moduleName != $myModule) {
                 Mage::getConfig()->addAllowedModules($moduleName);
             }
         }
         Mage::getConfig()->reinit();
         return $this;
     }
     return parent::applyUpdates();
 }
Exemplo n.º 18
0
 /**
  * Flush an entire magento cache
  * 
  * @return Aitoc_Aitsys_Model_Core_Cache
  */
 public function flush()
 {
     if (version_compare(Mage::getVersion(), '1.4', '>=')) {
         Mage::app()->getCacheInstance()->flush();
     } else {
         Mage::app()->getCache()->clean();
     }
     Mage::getConfig()->reinit();
     if (sizeof(Mage::getConfig()->getNode('aitsys')->events)) {
         Mage::app()->addEventArea('aitsys');
     }
     if (!Mage::app()->getUpdateMode()) {
         Mage_Core_Model_Resource_Setup::applyAllUpdates();
     }
     return $this;
 }
Exemplo n.º 19
0
 /**
  * @param InputInterface   $input
  * @param OutputInterface $output
  * @return int
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->getApplication()->setAutoExit(false);
     $this->detectMagento($output);
     if ($this->initMagento()) {
         try {
             /**
              * Get events before cache flush command is called.
              */
             $reflectionApp = new \ReflectionObject(\Mage::app());
             $appEventReflectionProperty = $reflectionApp->getProperty('_events');
             $appEventReflectionProperty->setAccessible(true);
             $eventsBeforeCacheFlush = $appEventReflectionProperty->getValue(\Mage::app());
             $this->getApplication()->run(new StringInput('cache:flush'), new NullOutput());
             /**
              * Restore initially loaded events which was reset during setup script run
              */
             $appEventReflectionProperty->setValue(\Mage::app(), $eventsBeforeCacheFlush);
             /**
              * Put output in buffer. \Mage_Core_Model_Resource_Setup::_modifyResourceDb should print any error
              * directly to stdout. Use execption which will be thrown to show error
              */
             \ob_start();
             \Mage_Core_Model_Resource_Setup::applyAllUpdates();
             if (is_callable(array('\\Mage_Core_Model_Resource_Setup', 'applyAllDataUpdates'))) {
                 \Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
             }
             \ob_end_clean();
             $output->writeln('<info>done</info>');
         } catch (\Exception $e) {
             \ob_end_clean();
             $this->printException($output, $e);
             $this->printStackTrace($output, $e->getTrace());
             $this->printFile($output, $e);
             return 1;
             // exit with error status
         }
     }
     return 0;
 }
Exemplo n.º 20
0
 public function applyUpdates()
 {
     if (!Mage::isInstalled()) {
         $dir = "app/code/local/Wyomind/";
         $ret = array();
         if (is_dir($dir)) {
             if (($dh = opendir($dir)) != false) {
                 while (($file = readdir($dh)) !== false) {
                     if (is_dir($dir . $file) && $file != "." && $file != "..") {
                         $enabled = Mage::getConfig()->getModuleConfig('Wyomind_' . ucfirst($namespace = strtolower($file)))->is('active', 'true');
                         if ($enabled) {
                             $ret[] = $file;
                         }
                     }
                 }
                 closedir($dh);
             }
         }
         Mage::getConfig()->saveConfig("notificationmanager/notificationmanager/extensions", implode(',', $ret), "default", "0");
         Mage::getConfig()->cleanCache();
     }
     return parent::applyUpdates();
 }
 protected function cleanCache()
 {
     $result = true;
     $message = '';
     try {
         if ($this->isInstalled()) {
             if (!empty($_REQUEST['clean_sessions'])) {
                 Mage::app()->cleanAllSessions();
                 $message .= 'Session cleaned successfully. ';
             }
             Mage::app()->cleanCache();
             // reinit config and apply all updates
             Mage::app()->getConfig()->reinit();
             Mage_Core_Model_Resource_Setup::applyAllUpdates();
             Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
             $message .= 'Cache cleaned successfully';
         } else {
             $result = true;
         }
     } catch (Exception $e) {
         $result = false;
         $message = "Exception during cache and session cleaning: " . $e->getMessage();
         $this->session()->addMessage('error', $message);
     }
     if ($result && $this->_getMaintenanceFlag()) {
         $maintenance_filename = 'maintenance.flag';
         $config = $this->config();
         if (!$this->isWritable() && strlen($config->__get('remote_config')) > 0) {
             $ftpObj = new Mage_Connect_Ftp();
             $ftpObj->connect($config->__get('remote_config'));
             $ftpObj->delete($maintenance_filename);
             $ftpObj->close();
         } else {
             @unlink($this->_getMaintenanceFilePath());
         }
     }
     return array('result' => $result, 'message' => $message);
 }
Exemplo n.º 22
0
 /**
  * Sets _conn to the SQL connection and saves Mongo connection as _mongoConn
  *
  * @param string $resourceName
  */
 public function __construct($resourceName)
 {
     parent::__construct($resourceName);
     $this->_mongoConn = $this->_conn;
     $this->_conn = Mage::getSingleton('core/resource')->getConnection('core_setup');
 }
Exemplo n.º 23
0
 /**
  * Database installation
  *
  * @return Mage_Install_Model_Installer
  */
 public function installDb()
 {
     Mage_Core_Model_Resource_Setup::applyAllUpdates();
     $data = $this->getDataModel()->getConfigData();
     /**
      * Saving host information into DB
      */
     $setupModel = new Mage_Core_Model_Resource_Setup('core_setup');
     if (!empty($data['use_rewrites'])) {
         $setupModel->setConfigData(Mage_Core_Model_Store::XML_PATH_USE_REWRITES, 1);
     }
     $unsecureBaseUrl = Mage::getBaseUrl('web');
     if (!empty($data['unsecure_base_url'])) {
         $unsecureBaseUrl = $data['unsecure_base_url'];
         $setupModel->setConfigData(Mage_Core_Model_Store::XML_PATH_UNSECURE_BASE_URL, $unsecureBaseUrl);
     }
     if (!empty($data['use_secure'])) {
         $setupModel->setConfigData(Mage_Core_Model_Store::XML_PATH_SECURE_IN_FRONTEND, 1);
         $setupModel->setConfigData(Mage_Core_Model_Store::XML_PATH_SECURE_BASE_URL, $data['secure_base_url']);
         if (!empty($data['use_secure_admin'])) {
             $setupModel->setConfigData(Mage_Core_Model_Store::XML_PATH_SECURE_IN_ADMINHTML, 1);
         }
     } elseif (!empty($data['unsecure_base_url'])) {
         $setupModel->setConfigData(Mage_Core_Model_Store::XML_PATH_SECURE_BASE_URL, $unsecureBaseUrl);
     }
     /**
      * Saving locale information into DB
      */
     $locale = Mage::getSingleton('install/session')->getLocaleData();
     if (!empty($locale['locale'])) {
         $setupModel->setConfigData(Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE, $locale['locale']);
     }
     if (!empty($locale['timezone'])) {
         $setupModel->setConfigData(Mage_Core_Model_Locale::XML_PATH_DEFAULT_TIMEZONE, $locale['timezone']);
     }
     if (!empty($locale['currency'])) {
         $setupModel->setConfigData(Mage_Directory_Model_Currency::XML_PATH_CURRENCY_BASE, $locale['currency']);
         $setupModel->setConfigData(Mage_Directory_Model_Currency::XML_PATH_CURRENCY_DEFAULT, $locale['currency']);
         $setupModel->setConfigData(Mage_Directory_Model_Currency::XML_PATH_CURRENCY_ALLOW, $locale['currency']);
     }
     return $this;
 }
Exemplo n.º 24
0
 /**
  * Install Magento
  *
  * @param array $options
  * @return string|boolean
  */
 public function install(array $options)
 {
     try {
         $options = $this->_getInstallOptions($options);
         if (!$options) {
             return false;
         }
         /**
          * Check if already installed
          */
         if (Mage::isInstalled()) {
             $this->addError('ERROR: Magento is already installed.');
             return false;
         }
         /**
          * Skip URL validation, if set
          */
         $this->_getDataModel()->setSkipUrlValidation($options['skip_url_validation']);
         $this->_getDataModel()->setSkipBaseUrlValidation($options['skip_url_validation']);
         /**
          * Locale settings
          */
         $this->_getDataModel()->setLocaleData(array('locale' => $options['locale'], 'timezone' => $options['timezone'], 'currency' => $options['default_currency']));
         /**
          * Database and web config
          */
         $this->_getDataModel()->setConfigData(array('db_model' => $options['db_model'], 'db_host' => $options['db_host'], 'db_name' => $options['db_name'], 'db_user' => $options['db_user'], 'db_pass' => $options['db_pass'], 'db_prefix' => $options['db_prefix'], 'use_rewrites' => $this->_getFlagValue($options['use_rewrites']), 'use_secure' => $this->_getFlagValue($options['use_secure']), 'unsecure_base_url' => $options['url'], 'secure_base_url' => $options['secure_base_url'], 'use_secure_admin' => $this->_getFlagValue($options['use_secure_admin']), 'session_save' => $this->_checkSessionSave($options['session_save']), 'backend_frontname' => $this->_checkBackendFrontname($options['backend_frontname']), 'admin_no_form_key' => $this->_getFlagValue($options['admin_no_form_key']), 'skip_url_validation' => $this->_getFlagValue($options['skip_url_validation']), 'enable_charts' => $this->_getFlagValue($options['enable_charts']), 'order_increment_prefix' => $options['order_increment_prefix']));
         /**
          * Primary admin user
          */
         $this->_getDataModel()->setAdminData(array('firstname' => $options['admin_firstname'], 'lastname' => $options['admin_lastname'], 'email' => $options['admin_email'], 'username' => $options['admin_username'], 'new_password' => $options['admin_password']));
         $installer = $this->_getInstaller();
         /**
          * Install configuration
          */
         $installer->installConfig($this->_getDataModel()->getConfigData());
         if (!empty($options['cleanup_database'])) {
             $this->_cleanUpDatabase();
         }
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Install database
          */
         $installer->installDb();
         if ($this->hasErrors()) {
             return false;
         }
         // apply data updates
         Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
         /**
          * Validate entered data for administrator user
          */
         $user = $installer->validateAndPrepareAdministrator($this->_getDataModel()->getAdminData());
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Prepare encryption key and validate it
          */
         $encryptionKey = empty($options['encryption_key']) ? $this->generateEncryptionKey() : $options['encryption_key'];
         $this->_getDataModel()->setEncryptionKey($encryptionKey);
         $installer->validateEncryptionKey($encryptionKey);
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Create primary administrator user
          */
         $installer->createAdministrator($user);
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Save encryption key or create if empty
          */
         $installer->installEnryptionKey($encryptionKey);
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Installation finish
          */
         $installer->finish();
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Change directories mode to be writable by apache user
          */
         $this->_filesystem->changePermissions(Mage::getBaseDir('var'), 0777, true);
         return $encryptionKey;
     } catch (Exception $e) {
         $this->addError('ERROR: ' . $e->getMessage());
         return false;
     }
 }
Exemplo n.º 25
0
 public function perform()
 {
     $this->db->run($this->args['q']);
 }
Exemplo n.º 26
0
<?php

define('_TEST', true);
require_once '../app/Mage.php';
Mage::app("default")->setUseSessionInUrl(false);
Mage::setIsDeveloperMode(true);
Mage_Core_Model_Resource_Setup::applyAllUpdates();
if (!function_exists('test_autoload')) {
    function test_autoload($class)
    {
        $file = dirname(__FILE__) . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php';
        if (file_exists($file)) {
            require_once $file;
        }
    }
    spl_autoload_register('test_autoload');
}
Mana_Core_Test_Case::installTestData();
 /**
  * Initialize active modules configuration and data
  *
  * @return Mage_Core_Model_App
  */
 protected function _initModules()
 {
     if (!$this->_config->loadModulesCache()) {
         $this->_config->loadModules();
         if ($this->_config->isLocalConfigLoaded() && !$this->_shouldSkipProcessModulesUpdates()) {
             Varien_Profiler::start('mage::app::init::apply_db_schema_updates');
             Mage_Core_Model_Resource_Setup::applyAllUpdates();
             Varien_Profiler::stop('mage::app::init::apply_db_schema_updates');
         }
         $this->_config->loadDb();
         $this->_config->saveCache();
     }
     return $this;
 }
Exemplo n.º 28
0
 /**
  * Install Magento
  *
  * @return boolean
  */
 public function install()
 {
     try {
         /**
          * Check if already installed
          */
         if (Mage::isInstalled()) {
             $this->addError('ERROR: Magento is already installed');
             return false;
         }
         /**
          * Skip URL validation, if set
          */
         $this->_getDataModel()->setSkipUrlValidation($this->_args['skip_url_validation']);
         $this->_getDataModel()->setSkipBaseUrlValidation($this->_args['skip_url_validation']);
         /**
          * Prepare data
          */
         $this->_prepareData();
         if ($this->hasErrors()) {
             return false;
         }
         $installer = $this->_getInstaller();
         /**
          * Install configuration
          */
         $installer->installConfig($this->_getDataModel()->getConfigData());
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Reinitialize configuration (to use new config data)
          */
         $this->_app->cleanCache();
         Mage::getConfig()->reinit();
         /**
          * Install database
          */
         $installer->installDb();
         if ($this->hasErrors()) {
             return false;
         }
         // apply data updates
         Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
         /**
          * Validate entered data for administrator user
          */
         $user = $installer->validateAndPrepareAdministrator($this->_getDataModel()->getAdminData());
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Prepare encryption key and validate it
          */
         $encryptionKey = empty($this->_args['encryption_key']) ? md5(Mage::helper('core')->getRandomString(10)) : $this->_args['encryption_key'];
         $this->_getDataModel()->setEncryptionKey($encryptionKey);
         $installer->validateEncryptionKey($encryptionKey);
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Create primary administrator user
          */
         $installer->createAdministrator($user);
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Save encryption key or create if empty
          */
         $installer->installEnryptionKey($encryptionKey);
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Installation finish
          */
         $installer->finish();
         if ($this->hasErrors()) {
             return false;
         }
         /**
          * Change directories mode to be writable by apache user
          */
         @chmod('var/cache', 0777);
         @chmod('var/session', 0777);
     } catch (Exception $e) {
         $this->addError('ERROR: ' . $e->getMessage());
         return false;
     }
     return true;
 }
 /**
  * Run module modification files. Return version of last applied upgrade (false if no upgrades applied)
  *
  * @param string $actionType self::TYPE_*
  * @param string $fromVersion
  * @param string $toVersion
  * @return string|false
  * @throws Mage_Core_Exception
  */
 protected function _modifyResourceDb($actionType, $fromVersion, $toVersion)
 {
     switch ($actionType) {
         case self::TYPE_DB_INSTALL:
         case self::TYPE_DB_UPGRADE:
             $files = $this->_getAvailableDbFiles($actionType, $fromVersion, $toVersion);
             break;
         case self::TYPE_DATA_INSTALL:
         case self::TYPE_DATA_UPGRADE:
             $files = $this->_getAvailableDataFiles($actionType, $fromVersion, $toVersion);
             break;
         default:
             $files = array();
             break;
     }
     if (empty($files) || !$this->getConnection()) {
         return false;
     }
     $version = false;
     foreach ($files as $file) {
         $fileName = $file['fileName'];
         $fileType = pathinfo($fileName, PATHINFO_EXTENSION);
         $this->getConnection()->disallowDdlCache();
         try {
             switch ($fileType) {
                 case 'php':
                     $conn = $this->getConnection();
                     $result = (include $fileName);
                     break;
                 case 'sql':
                     $sql = file_get_contents($fileName);
                     if (!empty($sql)) {
                         $result = $this->run($sql);
                     } else {
                         $result = true;
                     }
                     break;
                 default:
                     $result = false;
                     break;
             }
             if ($result) {
                 $this->_setResourceVersion($actionType, $file['toVersion']);
             }
         } catch (Exception $e) {
             throw Mage::exception('Mage_Core', Mage::helper('core')->__('Error in file: "%s" - %s', $fileName, $e->getMessage()));
         }
         $version = $file['toVersion'];
         $this->getConnection()->allowDdlCache();
     }
     self::$_hadUpdates = true;
     return $version;
 }
Exemplo n.º 30
0
 /**
  * Constructor
  *
  * @param string $resourceName
  * @param Magento_Filesystem $filesystem
  * @param array $data
  */
 public function __construct($resourceName, Magento_Filesystem $filesystem, array $data = array())
 {
     $this->_filesystem = $filesystem;
     if (!isset($data['resource_config']) || !isset($data['connection_config']) || !isset($data['module_config']) || !isset($data['connection'])) {
         parent::__construct($resourceName);
     } else {
         $this->_resourceName = $resourceName;
         if (isset($data['connection'])) {
             $this->_conn = $data['connection'];
         }
         $this->_initConfigs($data);
     }
     if (isset($data['core_helper'])) {
         $this->_coreHelper = $data['core_helper'];
     } else {
         $this->_coreHelper = Mage::helper('Mage_Core_Helper_Data');
     }
     if (isset($data['base_dir'])) {
         $this->_baseDir = $data['base_dir'];
     } else {
         $this->_baseDir = Mage::getBaseDir();
     }
     $this->_initAliasesMapConfiguration($data);
 }