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(); } }
/** * 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(); }
public function testRecursiveFixturesLoading() { Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_RECURSIVE_MERGE_FIXTURES, true); self::prepareTables(); $yml1 = <<<END --- User: User_1: name: jwage400 pass: changeme END; $yml2 = <<<END --- User: User_2: name: jwage500 pass: changeme2 END; mkdir('test_data_fixtures'); file_put_contents('test_data_fixtures/test1.yml', $yml1); file_put_contents('test_data_fixtures/test2.yml', $yml2); $import = new Doctrine_Data_Import(getcwd() . '/test_data_fixtures'); $import->setFormat('yml'); $array = $import->doParsing(); $this->assertTrue(isset($array['User']['User_1'])); $this->assertTrue(isset($array['User']['User_2'])); unlink('test_data_fixtures/test1.yml'); unlink('test_data_fixtures/test2.yml'); rmdir('test_data_fixtures'); Doctrine_Manager::getInstance()->setAttribute(Doctrine_Core::ATTR_RECURSIVE_MERGE_FIXTURES, false); }
/** * 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); }