При работе с Drupal 8 крайне важно иметь четкое представление о том, как управлять схемой базы данных и манипулировать ею. По умолчанию Drupal использует подключение к базе данных по умолчанию для создания схем и управления ими. Однако могут возникнуть ситуации, когда вам потребуется указать конкретную базу данных для создания схемы. В этой статье мы рассмотрим несколько способов добиться этого, а также приведем соответствующие примеры кода.
Метод 1: использование функцииook_update_N() в пользовательском модуле
/
* Implements hook_update_N().
*/
function mymodule_update_8001() {
// Specify the database connection.
$database = 'my_custom_database';
// Set the active database connection.
\Drupal\Core\Database\Database::setActiveConnection($database);
// Create or modify your schema here.
// ...
// Reset the active database connection.
\Drupal\Core\Database\Database::setActiveConnection();
}
Метод 2: использование класса Drupal\Core\Database\Connection
use Drupal\Core\Database\Database;
// Specify the database connection.
$database = 'my_custom_database';
// Get the database connection object.
$connection = Database::getConnection($database);
// Create or modify your schema here.
// ...
Метод 3: установка активного подключения к базе данных напрямую
use Drupal\Core\Database\Database;
// Specify the database connection.
$database = 'my_custom_database';
// Set the active database connection.
Database::setActiveConnection($database);
// Create or modify your schema here.
// ...
// Reset the active database connection.
Database::setActiveConnection();
Метод 4. Настройка подключения к базе данных в settings.php
$databases['my_custom_database']['default'] = array(
'database' => 'my_custom_database',
'username' => 'my_username',
'password' => 'my_password',
'prefix' => '',
'host' => 'localhost',
'port' => '3306',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql',
);
// Create or modify your schema here.
// ...
Управление схемой базы данных является важным аспектом разработки Drupal 8, и иногда вам может потребоваться указать конкретную базу данных для создания схемы. В этой статье мы рассмотрели несколько методов достижения этой цели, в том числе использование функцииook_update_N(), использование класса Drupal\Core\Database\Connection, прямую установку активного соединения с базой данных и настройку соединения с базой данных в файле settings.php. Реализуя эти методы, вы сможете лучше контролировать, где создается ваша схема, обеспечивая эффективное и организованное управление базами данных в ваших проектах Drupal 8.