/**
  * {@inheritdoc}
  */
 public function dropDatabase($database)
 {
     $params = $this->_conn->getParams();
     $params["dbname"] = "postgres";
     $tmpPlatform = $this->_platform;
     $tmpConn = $this->_conn;
     $this->_conn = \Doctrine\DBAL\DriverManager::getConnection($params);
     $this->_platform = $this->_conn->getDatabasePlatform();
     parent::dropDatabase($database);
     $this->_conn->close();
     $this->_platform = $tmpPlatform;
     $this->_conn = $tmpConn;
 }
 /**
  * {@inheritdoc}
  */
 public function dropDatabase($database = null)
 {
     if (null === $database) {
         $database = $this->_conn->getDatabase();
     }
     $params = $this->_conn->getParams();
     $params["dbname"] = "information_schema";
     $tmpPlatform = $this->_platform;
     $tmpConn = $this->_conn;
     $this->_conn = DriverManager::getConnection($params);
     $this->_platform = $this->_conn->getDatabasePlatform();
     parent::dropDatabase($database);
     $this->_platform = $tmpPlatform;
     $this->_conn = $tmpConn;
 }
 /**
  * {@inheritdoc}
  */
 public function dropDatabase($database)
 {
     try {
         parent::dropDatabase($database);
     } catch (DriverException $exception) {
         // If we have a SQLSTATE 55006, the drop database operation failed
         // because of active connections on the database.
         // To force dropping the database, we first have to close all active connections
         // on that database and issue the drop database operation again.
         if ($exception->getSQLState() !== '55006') {
             throw $exception;
         }
         $this->_execSql(array($this->_platform->getDisallowDatabaseConnectionsSQL($database), $this->_platform->getCloseActiveDatabaseConnectionsSQL($database)));
         parent::dropDatabase($database);
     }
 }
Exemplo n.º 4
0
 /**
  * {@inheritdoc}
  *
  * Tries stopping a database before dropping
  * as SQL Anywhere needs a database to be stopped
  * before it can be dropped.
  *
  * @see stopDatabase
  */
 public function dropDatabase($database)
 {
     $this->tryMethod('stopDatabase', $database);
     parent::dropDatabase($database);
 }