function Connection::createDatabase
Same name in this branch
- 11.x core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection::createDatabase()
- 11.x core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection::createDatabase()
- 11.x core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection::createDatabase()
- 11.x core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::createDatabase()
Same name in other branches
- 9 core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection::createDatabase()
- 9 core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection::createDatabase()
- 9 core/modules/pgsql/src/Driver/Database/pgsql/Connection.php \Drupal\pgsql\Driver\Database\pgsql\Connection::createDatabase()
- 9 core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection::createDatabase()
- 9 core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::createDatabase()
- 8.9.x core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection::createDatabase()
- 8.9.x core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php \Drupal\Core\Database\Driver\sqlite\Connection::createDatabase()
- 8.9.x core/lib/Drupal/Core/Database/Driver/mysql/Connection.php \Drupal\Core\Database\Driver\mysql\Connection::createDatabase()
- 8.9.x core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection::createDatabase()
- 8.9.x core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::createDatabase()
- 10 core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection::createDatabase()
- 10 core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection::createDatabase()
- 10 core/modules/pgsql/src/Driver/Database/pgsql/Connection.php \Drupal\pgsql\Driver\Database\pgsql\Connection::createDatabase()
- 10 core/tests/fixtures/database_drivers/custom/fake/Connection.php \Drupal\Driver\Database\fake\Connection::createDatabase()
- 10 core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::createDatabase()
Overrides \Drupal\Core\Database\Connection::createDatabase().
Parameters
string $database: The name of the database to create.
Throws
\Drupal\Core\Database\DatabaseNotFoundException
Overrides Connection::createDatabase
File
-
core/
modules/ pgsql/ src/ Driver/ Database/ pgsql/ Connection.php, line 287
Class
- Connection
- PostgreSQL implementation of \Drupal\Core\Database\Connection.
Namespace
Drupal\pgsql\Driver\Database\pgsqlCode
public function createDatabase($database) {
// Escape the database name.
$database = Database::getConnection()->escapeDatabase($database);
$db_created = FALSE;
// Try to determine the proper locales for character classification and
// collation. If we could determine locales other than 'en_US', try creating
// the database with these first.
$ctype = setlocale(LC_CTYPE, 0);
$collate = setlocale(LC_COLLATE, 0);
if ($ctype && $collate) {
try {
$this->connection
->exec("CREATE DATABASE {$database} WITH TEMPLATE template0 ENCODING='UTF8' LC_CTYPE='{$ctype}.UTF-8' LC_COLLATE='{$collate}.UTF-8'");
$db_created = TRUE;
} catch (\Exception $e) {
// It might be that the server is remote and does not support the
// locale and collation of the webserver, so we will try again.
}
}
// Otherwise fall back to creating the database using the 'en_US' locales.
if (!$db_created) {
try {
$this->connection
->exec("CREATE DATABASE {$database} WITH TEMPLATE template0 ENCODING='UTF8' LC_CTYPE='en_US.UTF-8' LC_COLLATE='en_US.UTF-8'");
} catch (\Exception $e) {
// If the database can't be created with the 'en_US' locale either,
// we're finally throwing an exception.
throw new DatabaseNotFoundException($e->getMessage());
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.