public function Connection::createDatabase

Same name in this branch
  1. 9.x drupal/core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::createDatabase()
  2. 9.x drupal/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php \Drupal\Core\Database\Driver\mysql\Connection::createDatabase()
  3. 9.x drupal/core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php \Drupal\Core\Database\Driver\sqlite\Connection::createDatabase()
  4. 9.x drupal/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection::createDatabase()

Overrides \Drupal\Core\Database\Connection::createDatabase().

Parameters

string $database: The name of the database to create.

Throws

DatabaseNotFoundException

Overrides Connection::createDatabase

File

drupal/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php, line 191
Definition of Drupal\Core\Database\Driver\pgsql\Connection

Class

Connection

Namespace

Drupal\Core\Database\Driver\pgsql

Code

public function createDatabase($database) {

  // Escape the database name.
  $database = Database::getConnection()
    ->escapeDatabase($database);

  // If the PECL intl extension is installed, use it to determine the proper
  // locale.  Otherwise, fall back to en_US.
  if (class_exists('Locale')) {
    $locale = Locale::getDefault();
  }
  else {
    $locale = 'en_US';
  }
  try {

    // Create the database and set it as active.
    $this
      ->exec("CREATE DATABASE {$database} WITH TEMPLATE template0 ENCODING='utf8' LC_CTYPE='{$locale}.utf8' LC_COLLATE='{$locale}.utf8'");
  } catch (\Exception $e) {
    throw new DatabaseNotFoundException($e
      ->getMessage());
  }
}