/** * Implements the _finalize() abstract method * */ protected function _finalize() { $this->setState('finished'); // If we are in db backup mode, don't create a databases.ini $configuration = AEFactory::getConfiguration(); if (!AEUtilScripting::getScriptingParameter('db.databasesini', 1)) { AEUtilLogger::WriteLog(_AE_LOG_DEBUG, __CLASS__ . " :: Skipping databases.ini"); } else { // Create the databases.ini contents if ($this->installerSettings->databasesini) { $this->createDatabasesINI(); AEUtilLogger::WriteLog(_AE_LOG_DEBUG, __CLASS__ . " :: Creating databases.ini"); // Create a new string $databasesINI = $this->databases_ini; // BEGIN FIX 1.2 Stable -- databases.ini isn't written on disk AEUtilLogger::WriteLog(_AE_LOG_DEBUG, __CLASS__ . " :: Writing databases.ini contents"); $archiver = AEFactory::getArchiverEngine(); $virtualLocation = AEUtilScripting::getScriptingParameter('db.saveasname', 'normal') == 'short' ? '' : $this->installerSettings->sqlroot; $archiver->addVirtualFile('databases.ini', $virtualLocation, $databasesINI); // Error propagation $this->propagateFromObject($archiver); if ($this->getError()) { return false; } } } // On alldb mode, we have to finalize the archive as well if (AEUtilScripting::getScriptingParameter('db.finalizearchive', 0)) { AEUtilLogger::WriteLog(_AE_LOG_INFO, "Finalizing database dump archive"); $archiver = AEFactory::getArchiverEngine(); $archiver->finalize(); // Error propagation $this->propagateFromObject($archiver); if ($this->getError()) { return false; } } // In CLI mode we'll also close the database connection if (defined('AKEEBACLI')) { AEUtilLogger::WriteLog(_AE_LOG_INFO, "Closing the database connection to the main database"); $db = AEFactory::unsetDatabase(); } return true; }