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); }
/** * 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; }
/** * 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); }