logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll
19/06/2025, by Ivan

El medio principal para definir la conexión a la base de datos es el arreglo $databases en settings.php. Como su nombre indica, $databases permite definir múltiples conexiones a bases de datos. También soporta la definición de múltiples destinos. La conexión a la base de datos no se abre (el objeto de conexión no se crea) hasta que el primer fragmento de código intenta ejecutar una consulta en esa base de datos.

Clave de conexión

$databases['default'] // La conexión a la base de datos.

La clave de conexión es un identificador único para esa conexión a la base de datos. La clave debe ser única para el sitio dado, y siempre debe existir una conexión por defecto, que será la base de datos principal de Drupal. En la mayoría de sitios, esta será la única conexión definida.

Destino

$databases['default']['default'] // El destino de la base de datos.

Cada clave de conexión debe tener uno o más destinos. Un destino es una base de datos que puede usarse si está disponible. El destino "default" siempre debe estar definido para cada clave de conexión. Si el destino solicitado no está definido, el sistema automáticamente vuelve al valor "default".

El uso principal de los destinos es para la replicación primaria / réplica. El destino por defecto es el servidor SQL principal. Luego, puede definirse uno o más destinos "replica" (tenga en cuenta que en algunas situaciones "replica" es el único destino alternativo válido, por ejemplo, en consultas estáticas). Las consultas marcadas para intentar usar el servidor réplica, si está disponible, intentarán acceder al destino "replica". Si está disponible, esa conexión se abrirá (si aún no está abierta) y la consulta se ejecutará en el servidor réplica. Si no, la consulta se ejecutará en el servidor "principal". Esto proporciona una alternativa transparente para que el código pueda aprovechar el servidor réplica si está disponible, pero aún funcionará sin cambios sin servidor réplica.

Sintaxis de $databases

El arreglo $databases es un arreglo anidado de al menos tres niveles. El primer nivel define las claves de la base de datos. El segundo nivel define los destinos de la base de datos. El valor de cada destino es la información de conexión para esa clave/destino. Algunos ejemplos deberían aclarar esto.

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'localhost',
);

El arreglo $databases anterior define una clave de conexión ("default") con un solo destino ("default"). Esta conexión usa la base de datos MySQL (clave "driver") en el host local llamada "drupaldb" con usuario "username" y contraseña "secret". El ejemplo anterior es un caso típico de instalación de Drupal con un solo servidor SQL y es suficiente para la gran mayoría de sitios.

Para una configuración primaria / réplica se puede definir lo siguiente:

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb1',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver1',
);
$databases['default']['replica'][] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb2',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver2',
);
$databases['default']['replica'][] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb3',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver3',
);

Esta definición provee un servidor "default" y dos servidores "replica". Note que la clave "replica" es un arreglo. Si cualquier destino está definido como un arreglo de información de conexión, uno de los servidores definidos será elegido al azar para ese destino en cada consulta de página. Así, para una página solicitada, todas las consultas a las réplicas se enviarán a dbserver2, y en la siguiente página a dbserver3.

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb1',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver1',
);
$databases['extra']['default'] = array(
  'driver' => 'sqlite',
  'database' => 'files/extradb.sqlite',
);

Esta configuración define una base de datos principal para Drupal y una base de datos adicional llamada "extra" que usa SQLite. Note que la información de conexión para SQLite está estructurada diferente a MySQL. Cada driver puede tener una configuración distinta según sus requerimientos.

Recuerde que, sin importar cuántas conexiones defina, Drupal no abrirá la conexión a la base de datos hasta que realmente se utilice.

PDO Requerido

Dado que la librería PHP PDO ahora es requerida para la capa de base de datos de Drupal, necesitará un plan de hosting que la incluya para ejecutar Drupal.

Opciones de PDO

Las opciones PDO y las opciones PDO para drivers específicos pueden especificarse en el arreglo de base de datos usando la clave 'pdo', por ejemplo:

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'dbserver1',
  'pdo' => array(PDO::ATTR_TIMEOUT => 2.0, PDO::MYSQL_ATTR_COMPRESS => 1),
);

 

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.