/** * * @param \AppData $myAppData * @param string $targetDbName */ public static function getDbFromXml(&$myAppData, $operation, $targetDbName) { // Initialize configuration $di = Di::getDefault(); $targetDb = 'db_' . $targetDbName; $db = $di->get($targetDb); $xmlDbFiles = self::getAllXmlFiles($operation, $targetDbName); // Initialize XmlToAppData object $appDataObject = new \XmlToAppData(new \Centreon\Custom\Propel\CentreonMysqlPlatform($db), null, 'utf-8'); // Get DB File foreach ($xmlDbFiles as $dbFile) { $myAppData->joinAppDatas(array($appDataObject->parseFile($dbFile))); unset($appDataObject); $appDataObject = new \XmlToAppData(new \Centreon\Custom\Propel\CentreonMysqlPlatform($db), null, 'utf-8'); } unset($appDataObject); }
/** * * @param \AppData $myAppData * @param string $targetDbName */ public static function getDbFromXml(&$myAppData, $targetDbName) { $db = self::getDbConnector($targetDbName); $xmlDbFiles = self::buildTargetDbSchema($targetDbName); // Initialize XmlToAppData object $appDataObject = new \XmlToAppData(new CentreonMysqlPlatform($db), null, 'utf-8'); // Get DB File foreach ($xmlDbFiles as $dbFile) { $myAppData->joinAppDatas(array($appDataObject->parseFile($dbFile))); unset($appDataObject); $appDataObject = new \XmlToAppData(new CentreonMysqlPlatform($db), null, 'utf-8'); } unset($appDataObject); }
protected function dropTables() { $db = Di::getDefault()->get('db_centreon'); $platform = new CentreonMysqlPlatform($db); // Get current DB State $currentDb = self::initializeCurrentSchema($platform); // Retreive target DB State $updatedAppData = new \AppData($platform); $appDataObject = new \XmlToAppData(new CentreonMysqlPlatform($db), null, 'utf-8'); $updatedAppData->joinAppDatas(array($appDataObject->parseFile(__DIR__ . '/data/empty.xml'))); unset($appDataObject); /* @todo Fatorize */ $diff = \PropelDatabaseComparator::computeDiff($currentDb, $updatedAppData->getDatabase('centreon'), false); if (false !== $diff) { $strDiff = $platform->getModifyDatabaseDDL($diff); $sqlToBeExecuted = \PropelSQLParser::parseString($strDiff); \PropelSQLParser::executeString($strDiff, $db); } }