public function testBug() { $yml = <<<END --- Account: A1: Amount: 100 A2: amount: 200 A3: Amount: 300 A4: Entity_id: -100 A5: entity_id: -200 A6: Entity_id: -300 END; file_put_contents('test.yml', $yml); $import = new Doctrine_Data_Import('test.yml'); $import->setFormat("yml"); // try to import garbled records (with incorrect field names, // e.g. "Amount" instead of "amount") and expect that doctrine // will raise an exception. try { $import->doImport(); $this->fail('Doctrine did not raise any exceptions when were importing garbled records.'); } catch (Exception $e) { $this->pass(); } }
/** * Do the importing of the data parsed from the fixtures * * @return void */ public function doImport($append = false) { $this->_rows = array(); $result = parent::doImport($append); $this->_buildObjectsIds(); return $result; }
/** * Create the ShineISP Database */ public static function createDb($installsampledata = true) { try { $dbconfig = Shineisp_Main::databaseConfig(); $dsn = Shineisp_Main::getDSN(); $conn = Doctrine_Manager::connection($dsn, 'doctrine'); $conn->execute('SHOW TABLES'); # Lazy loading of the connection. If I execute a simple command the connection to the database starts. $conn->setAttribute(Doctrine::ATTR_USE_NATIVE_ENUM, true); $conn->setCharset('UTF8'); $dbh = $conn->getDbh(); $models = Doctrine::getLoadedModels(); // Set the current connection $manager = Doctrine_Manager::getInstance()->setCurrentConnection('doctrine'); if ($conn->isConnected()) { $migration = new Doctrine_Migration(APPLICATION_PATH . '/configs/migrations'); // Get the latest version set in the migrations directory $latestversion = $migration->getLatestVersion(); if (empty($latestversion)) { $latestversion = 0; } // Clean the database $conn->execute('SET FOREIGN_KEY_CHECKS = 0'); foreach ($models as $model) { $tablename = Doctrine::getTable($model)->getTableName(); $dbh->query("DROP TABLE IF EXISTS {$tablename}"); } // Create the migration_version table Doctrine_Manager::getInstance()->getCurrentConnection()->execute('DROP TABLE IF EXISTS `migration_version`;CREATE TABLE `migration_version` (`version` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;INSERT INTO `migration_version` VALUES (' . $latestversion . ')'); // Create all the tables in the database Doctrine_Core::createTablesFromModels(APPLICATION_PATH . '/models'); // Common resources Doctrine_Core::loadData(APPLICATION_PATH . '/configs/data/fixtures/commons/', true); // Sample data if ($installsampledata) { $import = new Doctrine_Data_Import(APPLICATION_PATH . '/configs/data/fixtures/'); $import->setFormat('yml'); $import->setModels($models); $import->doImport(true); } $conn->execute('SET FOREIGN_KEY_CHECKS = 1'); // Update the version in the config.xml file previously created Settings::saveConfig($dbconfig, $latestversion); } else { echo "No Connection found"; } } catch (Exception $e) { die($e); } // return the latest version return $latestversion; }
/** * importData * * Interface for importing data from fixture files to Doctrine models * * @param string $directory * @param string $format * @param string $models * @return void */ public function importData($directory, $format = 'yml', $models = array()) { $import = new Doctrine_Data_Import($directory); $import->setFormat($format); $import->setModels($models); return $import->doImport(); }
/** * importData * * Interface for importing data from fixture files to Doctrine models * * @param string $directory * @param string $format * @param string $models * @return void */ public function importData($directory, $format = 'yml', $models = array(), $append = false) { if (!is_dir($directory)) { return; } $import = new Doctrine_Data_Import($directory); $import->setFormat($format); $import->setModels($models); return $import->doImport($append); }
/** * importData * * Interface for importing data from fixture files to Doctrine models * * @param string $directory * @param string $format * @param string $models * @return void */ public function importData($directory, $format = 'yml', $models = array(), $append = false, $charset = 'UTF-8') { $import = new Doctrine_Data_Import($directory); $import->setFormat($format); $import->setModels($models); $import->setCharset($charset); return $import->doImport($append); }