示例#1
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;
 }
示例#2
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);
 }
示例#3
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);
 }
示例#4
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();
 }
示例#5
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);
 }