示例#1
0
    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;
 }
示例#3
0
 /**
  * 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;
 }
示例#4
0
 /**
  * importDummyData
  *
  * Interface for importing dummy data to models
  * 
  * @param string $num 
  * @param string $models 
  * @return void
  */
 public function importDummyData($num = 3, $models = array())
 {
     $import = new Doctrine_Data_Import();
     $import->setModels($models);
     return $import->doImportDummyData($num);
 }
示例#5
0
    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);
    }
示例#6
0
 /**
  * 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();
 }
示例#7
0
文件: Data.php 项目: uwitec/mgoa
 /**
  * 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);
 }
示例#8
0
文件: Data.php 项目: marekk/doctrine1
 /**
  * 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);
 }