/** * @param bool $clean * @return DBTestCreator * @throws DatabaseException */ public function dropDB($clean = false) { foreach ($this->pool->getPool() as $name => $db) { /* @var $db DB */ foreach ($this->schema->getTableNames() as $name) { try { $db->queryRaw(OSQL::dropTable($name, true)->toDialectString($db->getDialect())); } catch (DatabaseException $e) { if (!$clean) { throw $e; } } if ($db->hasSequences()) { foreach ($this->schema->getTableByName($name)->getColumns() as $columnName => $column) { try { if ($column->isAutoincrement()) { $db->queryRaw("DROP SEQUENCE {$name}_id;"); } } catch (DatabaseException $e) { if (!$clean) { throw $e; } } } } } } return $this; }