Exemple #1
0
 public function dropSchema()
 {
     $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($this->em);
     $classes = $this->em->getMetadataFactory()->getAllMetadata();
     $sql = $schemaTool->getDropSchemaSql($classes);
     $schemaTool->dropSchema($classes, true);
     return $sql;
 }
 public function drop_dump_sql()
 {
     $driver = $this->em->getConfiguration()->getMetadataDriverImpl();
     $entities_names = $driver->getAllClassNames();
     $entities_metadata = array();
     foreach ($entities_names as $name) {
         array_push($entities_metadata, $this->em->getClassMetadata($name));
     }
     $tool = new \Doctrine\ORM\Tools\SchemaTool($this->em);
     return $tool->getDropSchemaSql($entities_metadata);
 }
Exemple #3
0
 /**
  * Get DB schema
  *
  * @param string $mode Schema generation mode OPTIONAL
  *
  * @return array(string)
  */
 public function getDBSchema($mode = self::SCHEMA_CREATE)
 {
     $tool = new \Doctrine\ORM\Tools\SchemaTool(static::$em);
     $schemas = array();
     $rawSchemas = null;
     $postprocessMethod = null;
     if (static::SCHEMA_CREATE == $mode) {
         $rawSchemas = $tool->getCreateSchemaSql($this->getAllMetadata());
         $postprocessMethod = 'postprocessCreateSchema';
     } elseif (static::SCHEMA_UPDATE == $mode) {
         $rawSchemas = $tool->getUpdateSchemaSql($this->getAllMetadata());
         $postprocessMethod = 'postprocessUpdateSchema';
     } elseif (static::SCHEMA_DELETE == $mode) {
         $rawSchemas = $tool->getDropSchemaSql($this->getAllMetadata());
         $postprocessMethod = 'postprocessDropSchema';
     }
     if ($rawSchemas) {
         foreach ($rawSchemas as $schema) {
             // $postprocessMethod detected by $mode
             $schema = $this->{$postprocessMethod}($schema);
             if (is_array($schema)) {
                 $schemas = array_merge($schemas, $schema);
             } elseif (isset($schema) && $schema) {
                 $schemas[] = $schema;
             }
         }
         foreach (static::$em->getMetadataFactory()->getAllMetadata() as $cmd) {
             if (!$cmd->isMappedSuperclass) {
                 $schemas = static::getRepo($cmd->name)->processSchema($schemas, $mode);
             }
         }
         $schemas = array_map('trim', $schemas);
         $schemas = preg_grep('/^.+$/Ss', $schemas);
     }
     return $schemas;
 }
Exemple #4
0
 /**
  * Returns schema from doctrine
  *
  * @param string $mode Schema generation mode OPTIONAL
  *
  * @return array
  */
 protected function getDBSchemaFromDoctrine($mode = self::SCHEMA_CREATE)
 {
     $tool = new \Doctrine\ORM\Tools\SchemaTool(static::$em);
     switch ($mode) {
         case static::SCHEMA_CREATE:
             $result = $tool->getCreateSchemaSql($this->getAllMetadata());
             break;
         case static::SCHEMA_UPDATE:
             $result = $tool->getUpdateSchemaSql($this->getAllMetadata());
             break;
         case static::SCHEMA_DELETE:
             $result = $tool->getDropSchemaSql($this->getAllMetadata());
             break;
         default:
             $result = array();
     }
     return array_unique($result);
 }