Example #1
0
 /**
  * 
  * @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);
 }
Example #2
0
 /**
  * 
  * @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);
 }
Example #3
0
 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);
     }
 }